Операционная система UNIX. Руководство программиста

       

Что нужно программе для работы с terminfo


Как правило, программа, работающая с terminfo, включает файлы и подпрограммы, которые перечислены ниже:

#include <curses.h> #include <term.h> . . . setupterm ((char*) 0, 1, (int*) 0); . . . putp (clear_screen); . . . reset_shell_mode (); exit (0);

Файлы <curses.h> и <term.h> нужны, поскольку они содержат определения текстовых объектов, чисел и флагов, которые используются подпрограммами terminfo. setupterm() занимается инициализацией. Передача ей значений (char*) 0, 1 и (int*) 0 обеспечивает установку разумных режимов. Если setupterm() не может распознать тип используемого терминала, она выводит сообщение об ошибке и завершается. reset_shell_mode() делает примерно то же, что и endwin(), и должна вызываться перед завершением terminfo-программы.

При вызове setupterm() определяются значения глобальных переменных, например clear_screen. Их значения могут быть выведены на экран входящими в terminfo подпрограммами putp() или tputs(), что обеспечивает пользователю дополнительные возможности по контролю терминала. Такую строку не следует выводить подпрограммой printf(3S) из библиотеки языка C, поскольку в ней содержится информация об использовании символов-заполнителей. Программа, пытающаяся вывести ее таким образом, может завершиться аварийно, если терминал требует использования заполнителей, или если он использует протокол xon/xoff.

На уровне terminfo подпрограммы более высокого уровня, например, addch() и getch(), недоступны. Вам придется самостоятельно решать проблему вывода на экран. Список характеристик и их описаний см. в terminfo(4), список подпрограмм terminfo см. в curses(3X).



Содержание раздела