ncurses - ncurses
Разработчики) | Томас Э. Дики |
---|---|
Первый выпуск | 1993 |
Стабильный выпуск | 6.2 / 12 февраля 2020 г .
|
Репозиторий | |
Написано в | C |
Операционная система | POSIX |
Тип | Набор инструментов для виджетов |
Лицензия | Лицензия X11 |
Веб-сайт |
остров-невидимка |
ncurses (new curses ) - это библиотека программирования, предоставляющая интерфейс прикладного программирования (API), который позволяет программисту писать текстовые пользовательские интерфейсы независимо от терминала. Это набор инструментов для разработки прикладного программного обеспечения , подобного графическому интерфейсу пользователя, которое работает под управлением эмулятора терминала . Он также оптимизирует смену экрана, чтобы уменьшить задержку при использовании удаленных оболочек .
ncurses - это бесплатная эмуляция curses System V Release 4.0 (SVr4) .
Существуют привязки для ncurses на различных языках программирования, включая Ada , Python , Gambas , Ruby , PHP , JavaScript и Perl .
История
В качестве новой версии ncurses представляет собой бесплатную эмуляцию curses System V Release 4.0 (SVr4) , которая сама по себе является улучшением по сравнению с более ранними версиями 4.4 BSD curses. Стандарт XSI Проклятия выданный X / Open явно и тесно смоделирован на System V .
проклятия
Первая библиотека curses была разработана в Калифорнийском университете в Беркли для операционной системы BSD примерно в 1980 году для поддержки текстовой приключенческой игры Rogue . Первоначально он использовал библиотеку termcap , которая использовалась в других программах, таких как редактор vi .
Успех библиотеки curses BSD побудил Bell Labs выпустить расширенную библиотеку curses в своих системах Unix System V Release 2 . Эта библиотека была более мощной и вместо termcap использовала terminfo . Однако из-за политики AT&T в отношении распространения исходного кода эта улучшенная библиотека curses не получила широкого распространения в сообществе BSD.
курсы
Примерно в 1982 году Павел Кертис начал работу над бесплатным клоном проклятий Bell Labs под названием pcurses , который поддерживался разными людьми до 1986 года.
ncurses
Библиотека pcurses была дополнительно улучшена, когда Зейд Бен-Халим взял на себя разработку в конце 1991 года. Новая библиотека была выпущена как ncurses в ноябре 1993 года с версией 1.8.1 в качестве первого основного выпуска. Последующая работа, вплоть до версии 1.8.8 (M1995), проводилась Эриком С. Реймондом , который добавил библиотеки форм и меню, написанные Юргеном Пфайфером. С 1996 года его поддерживает Томас Э. Дики .
Большинство вызовов ncurses можно легко перенести на старые curses. Реализации curses в System V могут поддерживать программы curses BSD с помощью простой перекомпиляции . Однако некоторые области являются проблематичными, например, обработка изменения размера терминала, поскольку в старых версиях curses нет аналогов.
База данных терминала
Ncurses может использовать terminfo (с расширяемыми данными) или termcap . Другие реализации curses обычно используют terminfo ; меньшинство использует termcap . Немногие (mytinfo был более старым исключением) используют оба.
Лицензия
Ncurses является частью проекта GNU , но не распространяется под GNU GPL или LGPL . Вместо этого он распространяется под разрешающей лицензией на свободное программное обеспечение , т. Е. Под лицензией MIT . Это связано с соглашением, заключенным с Free Software Foundation в то время, когда разработчики передали свои авторские права.
Когда было заключено соглашение о передаче прав FSF, был пункт, который гласил:
Фонд обещает, что все распространение Пакета или любой работы, «основанной на Пакете», которое происходит под контролем Фонда или его агентов или правопреемников, будет осуществляться на условиях, которые прямо и постоянно разрешают любому, кто владеет копией работа, к которой применяются эти условия, и наличие точного уведомления об этих условиях, чтобы распространять копии работы кому-либо на тех же условиях.
По словам сопровождающего Томаса Э. Дики, это исключает повторное лицензирование GPL в любой версии, так как это накладывает ограничения на программы, которые смогут связываться с библиотеками.
Программы с использованием ncurses
Существуют сотни программ, использующих ncurses. Некоторые, такие как GNU Screen и w3m , используют только интерфейс termcap и сами выполняют управление экраном. Другие, такие как GNU Midnight Commander и YaST , используют программный интерфейс curses.
Смотрите также
- conio.h - файл заголовка AC, используемый в компиляторах MS-DOS для создания текстовых пользовательских интерфейсов
- Комплект разработчика Curses
- Диалог (программное обеспечение)
- PDCurses
- S-Lang (библиотека программирования)
- SMG $ - библиотека управления экраном, доступная в OpenVMS.