Выполнение программы, которая использует curses
В процессе своей работы подпрограммы curses опираются на информацию из окружения пользователя. В частности, пользователю такой программы обычно нужно включить в свой файл .profile следующие три строки:
TERM=тип_текущего_терминала
export TERM tput init
Смысл этих строк объясняется в разделе Взаимодействие curses и terminfo. Пользователи curses-программы могут, кроме того, установить в файле .profile значения переменных окружения $LINES, $COLUMNS и $TERMINFO, однако, в отличие от случая с $TERM, делать это не обязательно.
Если Ваша curses-программа не работает должным образом, Вы, возможно, попытаетесь ее отладить с помощью sdb(1), как это описывается в Справочнике программиста. Пользуясь sdb, нужно учитывать ряд обстоятельств. Во-первых, curses-программа интерактивна и контролирует положение курсора. Однако, интерактивный отладчик, подобный sdb, может произвести на экране изменения, о которых не будет знать отлаживаемая программа.
Во-вторых, программа, работающая с curses, выводит в окно до тех пор, пока не будет вызвана refresh() или подобная ей подпрограмма. В связи с такой задержкой вывода на экран, отладка его правильности может быть затруднена.
В-третьих, во входящих в curses макросах нельзя установить точки прерывания. Вместо макросов нужно использовать подпрограммы, к которым эти макросы обращаются - например, к wrefresh()
вместо refresh(), Более подробную информацию о макросах см. выше в разделе Файл <curses.h>.