ncurses
![]() на основе ncurses Конфигурация меню | |
Разработчик(и) | Томас Э. Дики, Юрген Пфайфер, Эрик С. Рэймонд, Александр В. Лукьянов, Филипп Блен, Свен Вердолеге, Николя Буленгес и др. [ 1 ] [ 2 ] |
---|---|
Первоначальный выпуск | 1993 год |
Стабильная версия | 6.5 [ 3 ]
/ 27 апреля 2024 г |
Репозиторий | |
Написано в | С |
Операционная система | ПОСИКС |
Тип | Набор инструментов для виджетов |
Лицензия | Х11 [ 2 ] |
Веб-сайт | невидимый остров |
ncurses (новые проклятия ) — это библиотека программирования, предоставляющая интерфейс прикладного программирования (API), который позволяет писать текстовые пользовательские интерфейсы (TUI) независимым от компьютерного терминала способом. Это набор инструментов для разработки подобного графическому интерфейсу пользователя (GUI) прикладного программного обеспечения, , которое работает под управлением эмулятора терминала . Он также оптимизирует изменения экрана, чтобы уменьшить задержку при использовании удаленных оболочек .
ncurses — это с открытым исходным кодом System V Release 4.0 (SVr4) бесплатная программная эмуляция проклятий .
Существуют привязки для ncurses к различным языкам программирования, включая Ada , [ 4 ] Питон , [ 5 ] Креветки , [ 6 ] Руби , [ 7 ] PHP , [ 8 ] JavaScript , [ 9 ] Перл , [ 10 ] и Объект REXX (ooRexx). [ 11 ]
История
[ редактировать ]В качестве новой версии ncurses представляет собой с открытым исходным кодом System V Release 4.0 (SVr4) бесплатную программную эмуляцию проклятий , которая была улучшением по сравнению с прекращенными проклятиями 4.4 BSD. [ 12 ] Стандарт XSI Curses, выпущенный X/Open, явно и точно смоделирован на UNIX System V.
проклятия
[ редактировать ]Первая библиотека проклятий была разработана в Калифорнийском университете в Беркли для операционной системы BSD примерно в 1980 году для поддержки Rogue , текстовой приключенческой игры. Первоначально он использовал библиотеку termcap , которая использовалась в других программах, таких как редактор vi . [ 12 ]
Успех библиотеки проклятий BSD побудил Bell Labs выпустить расширенную библиотеку проклятий в своих системах Unix System V Release 2 . Эта библиотека была более мощной и вместо использования termcap использовала terminfo . Однако из-за политики AT&T в отношении распространения исходного кода эта улучшенная библиотека проклятий не получила большого признания в сообществе BSD. [ 12 ]
деньги
[ редактировать ]Примерно в 1982 году Павел Кертис начал работу над бесплатным клоном проклятий Bell Labs под названием pcurses , который поддерживался разными людьми до 1986 года. [ 13 ]
ncurses
[ редактировать ]Библиотека pcurses была усовершенствована, когда в конце 1991 года ее разработку взял на себя Зейд Бен-Халим. [ 12 ] [ 13 ] [ 14 ] Новая библиотека была выпущена под названием ncurses в ноябре 1993 года, причем версия 1.8.1 стала первым основным выпуском. Последующую работу над версией 1.8.8 (M1995) проводил Эрик С. Рэймонд , который добавил библиотеки форм и меню, написанные Юргеном Пфайфером. [ 1 ] С 1996 года его поддерживает Томас Э. Дики. [ 13 ]
Большинство вызовов ncurses можно легко перенести на старые проклятия. Реализации проклятий System V могут поддерживать программы проклятий BSD с помощью простой перекомпиляции . [ 15 ] Однако некоторые области являются проблематичными, например, обработка изменения размера терминала, поскольку в старых проклятиях аналога не существует.
База данных терминала
[ редактировать ]ncurses может использовать либо terminfo (с расширяемыми данными), либо termcap . Другие реализации проклятий обычно используют terminfo ; меньшинство использует termcap . Немного (mytinfo было более старым исключением [ 16 ] ) используйте оба.
Лицензия
[ редактировать ]ncurses является частью проекта GNU Project , но не распространяется под лицензией GNU General Public License (GPL) или GNU Lesser General Public License (LGPL). Вместо этого оно распространяется под разрешительной лицензией свободного программного обеспечения , то есть лицензией MIT . [ 17 ] Это связано с соглашением, заключенным с Фондом свободного программного обеспечения на момент передачи разработчиками своих авторских прав.
Когда было заключено соглашение о передаче прав ФФС, там был пункт, в котором говорилось: [ 17 ]
Фонд обещает, что любое распространение Пакета или любой работы, «основанной на Пакете», которое происходит под контролем Фонда или его агентов или правопреемников, будет осуществляться на условиях, которые прямо и бессрочно разрешают любому обладателю копии произведение, к которому применяются эти условия, и имея точное уведомление об этих условиях, перераспределять копии произведения кому-либо на тех же условиях.
По словам сопровождающего Томаса Э. Дики, это исключает повторное лицензирование на GPL в любой версии, поскольку это наложит ограничения на программы, которые смогут ссылаться на библиотеки. [ 17 ]
Программы, использующие ncurses
[ редактировать ]Сотни программ используют ncurses. [ 18 ] [ 19 ] Некоторые, такие как GNU Screen и w3m , используют только интерфейс termcap и сами выполняют управление экраном. Другие, такие как GNU Midnight Commander и Yet Another Setup Tool ( YaST ), используют интерфейс программирования Curs.
См. также
[ редактировать ]- conio.h — файл заголовка AC, используемый в DOS компиляторах для создания текстовых пользовательских интерфейсов.
- Комплект разработки проклятий
- Диалог (программное обеспечение)
- PDCurses
- S-Lang Библиотека программирования
- SMG$ — библиотека управления экраном, доступная в OpenVMS.
- Линия чтения GNU
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «NCURSES — Часто задаваемые вопросы (FAQ): Кто написал NCURSES?» .
- ^ Перейти обратно: а б «НКУРСЕС – Лицензирование» . Проверено 9 июля 2013 г.
- ^ "ncurses 6.5" . Проверено 27 апреля 2024 г.
- ^ «Привязка Ada95 для ncurses» .
- ^ «Программирование проклятий на Python — документация Python» .
- ^ «gb.ncurses — Изображения Wiki» .
- ^ "ncurses Ruby - RubyGems.org" .
- ^ «Функции Ncurses — Руководство по PHP» . Архивировано из оригинала 28 марта 2021 г. Проверено 4 февраля 2020 г.
- ^ «Плагин nc: привязки ncurses для SpiderApe» .
- ^ «Curses::UI — объектно-ориентированная структура пользовательского интерфейса на основе проклятий» .
- ^ Документация ooRexx 5.0.0: Справочник по библиотеке классов nCurses (PDF) . Языковая ассоциация рексов. 2022.
- ^ Перейти обратно: а б с д Раймонд, Эрик С. (сентябрь 1995 г.). «ncurses: портативная обработка экрана для Linux» . Linux-журнал .
- ^ Перейти обратно: а б с Дики, Томас Э. (декабрь 1996 г.). «НКУРСЫ — Новые проклятия» .
- ^ В файле README в ncurses 1.8.1 указано «v0.1 31 июля 1992 г.» и «v1.8.1 5 ноября 1993 г.», что соответствует файлу NEWS (список изменений).
- ^ «Руководство хакера по внутреннему устройству Ncurses» .
- ^ Вайнштейн, Сидней С. (апрель 1993 г.). «В сетях» . Журнал пользователей C/C++. Архивировано из оригинала 11 августа 2014 г. Проверено 15 сентября 2017 г.
- ^ Перейти обратно: а б с «NCURSES — Часто задаваемые вопросы (FAQ): Это GPL?» .
- ^ «Результаты поиска: +ncurses на Freshmeat.net» . Архивировано из оригинала 18 февраля 2012 года . Проверено 10 мая 2013 г.
- ^ «Проекты с тегом 'ncurses' » . охлох.