Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

ncurses (новые проклятия) - это библиотека программирования, предоставляющая интерфейс прикладного программирования (API), который позволяет программисту писать текстовые пользовательские интерфейсы независимо от терминала. Это набор инструментов для разработки прикладного программного обеспечения , подобного графическому интерфейсу пользователя, которое работает под управлением эмулятора терминала . Он также оптимизирует смену экрана, чтобы уменьшить задержку при использовании удаленных оболочек .

Существуют привязки для ncurses на различных языках программирования, включая Ada , [2] Python , [3] Gambas , [4] Ruby , [5] PHP , [6] JavaScript , [7] и Perl . [8]

История [ править ]

В качестве новой версии ncurses представляет собой бесплатную эмуляцию curses System V Release 4.0 (SVr4) , которая сама по себе является улучшением по сравнению с более ранними версиями 4.4 BSD curses. [9] стандарт В XSI Проклятия выданный X / Open явно и тесно смоделирован на System V .

проклятия [ править ]

Первая библиотека curses была разработана в Калифорнийском университете в Беркли для операционной системы BSD примерно в 1980 году для поддержки текстовой приключенческой игры Rogue . Первоначально он использовал библиотеку termcap , которая использовалась в других программах, таких как редактор vi . [9]

Успех библиотеки curses BSD побудил Bell Labs выпустить расширенную библиотеку curses в своих системах Unix System V Release 2 . Эта библиотека была более мощной и вместо termcap использовала terminfo . Однако из-за политики AT&T в отношении распространения исходного кода эта улучшенная библиотека curses не получила широкого признания в сообществе BSD. [9]

pcurses [ править ]

Примерно в 1982 году Павел Кертис начал работу над бесплатным клоном проклятий Bell Labs под названием pcurses , который поддерживался разными людьми до 1986 года. [10]

ncurses [ править ]

Библиотека pcurses была дополнительно улучшена, когда Зейд Бен-Халим взял на себя разработку в конце 1991 года. [9] [10] [11] Новая библиотека была выпущена как ncurses в ноябре 1993 года с версией 1.8.1 в качестве первого основного выпуска. . Последующая работа, вплоть до версии 1.8.8 (M1995), проводилась Эриком С. Реймондом , который добавил библиотеки форм и меню, написанные Юргеном Пфайфером. [12] С 1996 года его поддерживает Томас Э. Дики . [10]

Большинство вызовов ncurses можно легко перенести на старые curses. Реализации curses в System V могут поддерживать программы curses BSD с помощью простой перекомпиляции . [13] Однако некоторые области являются проблематичными, например, обработка изменения размера терминала, поскольку в старых версиях curses нет аналогов.

База данных терминала [ править ]

Ncurses может использовать terminfo (с расширяемыми данными) или termcap . Другие реализации curses обычно используют terminfo ; меньшинство использует termcap . Немногие (mytinfo была более ранним исключением [14] ) используют оба.

Лицензия [ править ]

Ncurses является частью проекта GNU . Это один из немногих файлов GNU, не распространяемых под GNU GPL или LGPL ; он распространяется под разрешающей лицензией на свободное программное обеспечение , аналогичной лицензии MIT . [15] Это связано с соглашением, заключенным с Free Software Foundation в то время, когда разработчики передали свои авторские права.

Когда было заключено соглашение о передаче прав FSF, был пункт, который гласил: [15]

Фонд обещает, что любое распространение Пакета или любой работы, «основанной на Пакете», которое происходит под контролем Фонда, его агентов или правопреемников, будет осуществляться на условиях, которые прямо и постоянно разрешают любому, кто владеет копией работа, к которой применяются эти условия, и наличие точного уведомления об этих условиях, чтобы распространять копии работы кому-либо на тех же условиях.

По словам сопровождающего Томаса Э. Дики, это исключает повторное лицензирование GPL в любой версии, так как это накладывает ограничения на программы, которые смогут связываться с библиотеками. [15]

Программы, использующие ncurses [ править ]

Существуют сотни программ, использующих ncurses. [16] [17] Некоторые, такие как GNU Screen и w3m , используют только интерфейс termcap и сами выполняют управление экраном. Другие, такие как GNU Midnight Commander и YaST , используют программный интерфейс curses.

См. Также [ править ]

  • conio.h - файл заголовка AC, используемый в компиляторах MS-DOS для создания текстовых пользовательских интерфейсов
  • Комплект разработчика Curses
  • Диалог (программное обеспечение)
  • PDCurses
  • S-Lang (библиотека программирования)
  • SMG $ - библиотека управления экраном, доступная в OpenVMS.

Ссылки [ править ]

  1. ^ «НКУРСЫ - Лицензирование» . Проверено 9 июля 2013 года .
  2. ^ Привязка Ada95 для ncurses
  3. ^ Curses Programming with Python - документация Python
  4. ^ gb.ncurses - Gambas Wiki
  5. ^ ncurses Ruby - RubyGems.org
  6. ^ Функции Ncurses - Руководство по PHP
  7. Плагин ^ nc: привязки ncurses для SpiderApe
  8. ^ Curses :: UI - Фреймворк объектно-ориентированного пользовательского интерфейса на основе curses.
  9. ^ a b c d Эрик С. Реймонд (сентябрь 1995 г.). «ncurses: Portable Screen-Handling для Linux» . Linux Journal .
  10. ^ a b c Томас Э. Дики (декабрь 1996 г.). «НКУРСЫ - Новые проклятия» .
  11. ^ В файле README в ncurses 1.8.1 указано "v0.1 31 июля 1992 г." и "v1.8.1 5 ноября 1993 г.", что согласуется с файлом NEWS (журнал изменений).
  12. ^ NCURSES - Часто задаваемые вопросы (FAQ): Кто написал NCURSES?
  13. ^ Руководство хакера по внутреннему устройству Ncurses
  14. Сидней С. Вайнштейн (апрель 1993 г.). «В сетях» . Журнал пользователей C / C ++. Архивировано из оригинала на 2014-08-11 . Проверено 15 сентября 2017 .
  15. ^ a b c NCURSES - Часто задаваемые вопросы (FAQ): под лицензией GPL?
  16. ^ "Результаты поиска: + ncurses на freshmeat.net" . Архивировано из оригинального 18 февраля 2012 года . Проверено 10 мая 2013 .
  17. ^ "Проекты с тегом 'ncurses ' " . охлох.

Внешние ссылки [ править ]

  • Официальный веб-сайт