[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Глава 2. Библиотека curses

Библиотека curses содержит функции управления дисплеями, которые могут применяться независимо от типа терминала, к которому подключен конкретный дисплей. Библиотека curses поддерживает управление цветом. В ней нет поддержки многобайтовых символов. Термин "символ" в документации по Curses всегда означает "однобайтовый символ".

Библиотека curses содержит функции управления дисплеями, которые могут применяться независимо от типа терминала, к которому подключен конкретный дисплей. В дальнейшем в этом документе библиотека curses будет называться просто curses.

Основным объектом в программах, использующих curses, является структура данных с информацией об окне. Эта структура позволяет управлять данными, показанными на дисплее терминала. Можно настроить curses так, что дисплей будет рассматриваться как одно большое окно, а можно создать на дисплее несколько окон. Эти окна могут иметь различные размеры и перекрывать друг друга. Типичное приложение curses содержит одно основное окно, в котором находится одно вложенное окно.

Каждому окну соответствует своя собственная структура данных, которая содержит данные о параметрах этого окна (размер, расположение на дисплее и т.д.). С помощью структуры данных об окне функции Curses получают данные, необходимые для выполнения команд.

Дополнительные сведения о применении библиотеки curses приведены а следующих разделах:


Терминология

Рекомендуем вам ознакомиться со следующими терминами, связанными с curses:

Термин Определение
текущий символ Символ, на который в настоящий момент указывает логический курсор.

текущая строка Строка, в которой находится логический курсор.

curscr Стандартное виртуальное окно curses. Структура curscr (текущий экран) - это внутреннее представление данных, показанных на дисплее. Изменять curscr нельзя.
дисплей Физический дисплей рабочей станции.
логический курсор Определяет расположение курсора в каждом окне. Положение логического курсора каждого окна хранится в структуре данных с информацией об этом окне.

панель Окно, размеры которого больше размеров дисплея.

физический курсор Курсор дисплея. Этот курсор служит для вывода данных на дисплей рабочей станции. У каждого дисплея существует только один физический курсор.

screen Окно, занимающее весь дисплей. Синоним stdscr.

stdscr Стандартное виртуальное окно (стандартный экран) curses, которое представляет весь дисплей целиком.
окно Указатель на структуру данных C, а также ее графическое представление на дисплее. Окно можно считать двумерной структурой, которая в любой момент времени отражает вид дисплея или его части.


Правила именования

Одна функция 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, как правило, выполняются в следующем порядке:

Ход работы конкретной программы не обязательно должен соответствовать этой последовательности.

Возвращаемые значения

Большинство функций curses возвращают либо целое значение ERR, либо целое значение OK. Если функция не соответствует этому соглашению, то это всегда указывается в ее описании. Функции, возвращающие указатели, в случае ошибки возвращают пустой указатель.

Связанная информация

Инициализация Curses

Окна в среде Curses


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]