Библиотека curses содержит функции управления дисплеями, которые могут применяться независимо от типа терминала, к которому подключен конкретный дисплей. Библиотека curses поддерживает управление цветом. В ней нет поддержки многобайтовых символов. Термин "символ" в документации по Curses всегда означает "однобайтовый символ".
Библиотека curses содержит функции управления дисплеями, которые могут применяться независимо от типа терминала, к которому подключен конкретный дисплей. В дальнейшем в этом документе библиотека curses будет называться просто curses.
Основным объектом в программах, использующих curses, является структура данных с информацией об окне. Эта структура позволяет управлять данными, показанными на дисплее терминала. Можно настроить curses так, что дисплей будет рассматриваться как одно большое окно, а можно создать на дисплее несколько окон. Эти окна могут иметь различные размеры и перекрывать друг друга. Типичное приложение curses содержит одно основное окно, в котором находится одно вложенное окно.
Каждому окну соответствует своя собственная структура данных, которая содержит данные о параметрах этого окна (размер, расположение на дисплее и т.д.). С помощью структуры данных об окне функции Curses получают данные, необходимые для выполнения команд.
Дополнительные сведения о применении библиотеки curses приведены а следующих разделах:
Рекомендуем вам ознакомиться со следующими терминами, связанными с
curses:
Одна функция curses может иметь две или более версий. В функциях
Curses с несколькими версиями применяются особые правила присвоения имен,
позволяющие идентифицировать каждую версию. В соответствии с этими
правилами к стандартному имени функции curses добавляется префикс, указываются
необходимые для ее запуска аргументы или действия, выполняемые этой
функцией. Для имен различных версий функций curses применяются три
различных префикса:
Префикс | Описание |
w | Обозначает функцию, для которой в качестве аргумента должно быть задано окно. |
p | Обозначает функцию, для которой в качестве аргумента должна быть задана панель. |
mv | Обозначает функцию перехода к указанным координатам. |
В некоторых функциях curses с несколькими версиями указанные префиксы не применяются. Такие функции работают с окном curses по умолчанию (stdscr). Большинство функций, работающих с окном stdscr - это макрокоманды, определенные в файле /usr/include/curses.h с помощью операторов #define. При компиляции препроцессор заменяет эти операторы. В результате макрокоманды не включаются в откомпилированный код, в данные трассировки, отладки, а также в исходный код curses.
Если функция curses имеет только одну версию, то она не обязательно использует stdscr. Например, функция printw выводит строку данных в окно stdscr. Функция wprintw выводит строку в окно, заданное в аргументе window. Функция mvprintw преобразует указанные координаты в координаты stdscr, а затем выполняет ту же операцию, что и printw . Аналогично, функция mvwprintw преобразует указанные координаты в координаты указанного окна, а затем выполняет ту же операцию, что и wprintw.
Программы curses, как правило, выполняются в следующем порядке:
Ход работы конкретной программы не обязательно должен соответствовать этой последовательности.
Большинство функций curses возвращают либо целое значение ERR, либо целое значение OK. Если функция не соответствует этому соглашению, то это всегда указывается в ее описании. Функции, возвращающие указатели, в случае ошибки возвращают пустой указатель.