Комментарии 10
Имхо, лучший обзор ncurses был тут https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
upd:
Но за ссылку https://bsdworks.codeberg.page/c_programming/058_c_programming_ix/ спасибо, это хорошее дополнение к той, что привёл я. В tldp больше справка, а в bsdworks есть ещё и практика
Ncurses («new curses») — библиотека, написанная на языках Си и Ада, предназначенная для управления вводом-выводом на терминал....
Изначально была библиотека под названием
curses
(название произошло от сокращения «cursor optimization»).
ncurses
— это клон оригинальнойcurses
из System V Release 4.0 (SVr4), которая в свою очередь была улучшением классическогоcurses
NCURSES (1993) — переписанный старый несвободный терминал CURSES, который был сделан для разработки игры Rogue (1980).
От автора статьи "Turbo Pascal: 40 лет развития", где 5!!! раз повторяется определение, что такое ЯП Паскаль.
Прикольно. Когда-то давно, еще будучи студентом, я сам пытался сделать универсальный текстовый интерфейс. Просто нравилась эта тема, нравилось как выглядят текстовые окна и менюшки:) Применял и в разных лабах/курсовиках, и в каких-то своих программах, да и просто сам процесс разработки нравился. Про ncurses тогда не знал, т.к. это линуксовая библиотека, а тогда использовал DOS и ранние Windows.
А сейчас наверное подобная либа, но уже с объектно-ориентированным интерфейсом, пожалуй была бы полезна в Go, учитывая что в основном он применяется на серверах, а там как раз консоли с доступом по ssh.
Был и для дося...
https://www.myabandonware.com/game/curses-31u
Не умею в го, но знаю пару библиотек для TUI:
В Ncurses нет виджетов, чтобы начать сразу программировать TUI, т.е. все эти окошечки с бордюрами, прокрутки, всё это самому придётся отрисосывать и события обрабатывать.
Толи дело был Turbo Vision. Сегодня есть современный клон https://github.com/magiblot/tvision
На современном C++ я бы попробовал писать TUI на чём-то, типа https://github.com/ArthurSonzogni/FTXUI
Что нового Вы увидели в этом примере?
getmaxyx(stdscr, row, col);
Что до сих пор, в 2024 году, в глобальную область видимости валятся загадочные переменные и дефайны типа stdscr.
#define stdscr NCURSES_PUBLIC_VAR(stdscr())
Как в таких условиях вести разработку?
Новые проклятия: руководство по ncurses