VTDLY
— выбор задержки для символа вертикальной табуляции;
FFDLY
— выбор задержки для символа прокрутки страницы.
Если флаг OPOST
не установлен, все остальные флаги игнорируются.
Режимы вывода тоже обычно не используются, поэтому мы не будем их обсуждать в дальнейшем.
Режимы управления
Эти режимы управляют аппаратными характеристиками терминала. Вы задаете режимы управления, устанавливая флаги элемента c_cflag
структуры типа termios
, включающие следующие макросы:
CLOCAL
— игнорирует управление линиями с помощью модема;
CREAD
— включает прием символов;
CS5
— использует пять битов в отправляемых и принимаемых символах;
CS6
— использует шесть битов в отправляемых и принимаемых символах;
CS7
— использует семь битов в отправляемых и принимаемых символах;
CS8
— использует восемь битов в отправляемых и принимаемых символах;
CSTOPB
— устанавливает два стоповых бита вместо одного;
HUPCL
— выключает управление линиями модема при закрытии;
PARENB
— включает генерацию и проверку четности;
PARODD
— применяет контроль нечетности вместо контроля четности.
Если драйвер терминала обнаруживает, что последний дескриптор файла, ссылающийся на терминал, закрыт и при этом флаг HUPCL
установлен, он устанавливает линии управления модема в состояние останова (hang-up).
Режимы управления применяются в основном при подключении к модему последовательной линии связи, хотя их можно использовать и при диалоге с терминалом. Обычно легче изменить настройку терминала, чем изменять стандартное поведение линий связи с помощью режимов управления структуры termios
.
Локальные режимы
Эти режимы управляют разнообразными характеристиками терминала. Вы можете задать локальный режим, устанавливая флаги элемента c_iflag
структуры termios
с помощью следующих макросов:
ECHO
— включает локальное отображение вводимых символов;
ECHOE
— выполняет комбинацию Backspace
, Space
, Backspace
при получении символа ERASE
(стереть);
ECHOK
— стирает строку при получении символа KILL
;
ECHONL
— отображает символы перехода на новую строку;
ICANON
— включает стандартную обработку ввода (см. текст, следующий за данным перечнем);
IEXTEN
— включает функции, зависящие от реализации;
ISIG
— включает генерацию сигналов;
NOFLSH
— отключает немедленную запись очередей;
TOSTOP
— посылает сигнал фоновым процессам при попытке записи.
Два самых важных флага в этой группе — ECHO
, позволяющий подавлять отображение вводимых символов, и ICANON
, переключающий терминал в один из двух различных режимов обработки принимаемых символов. Если установлен флаг ICANON
, говорится, что строка в каноническом режиме, если нет, то строка в неканоническом режиме.
Специальные управляющие символы
Специальные управляющие символы — это коллекция символов подобных символам от комбинации клавиш c_cc
структуры termios
содержатся символы, отображенные на поддерживаемые функции. Позиция каждого символа (его номер в массиве) определяется макросом, других ограничений для управляющих символов не задано.
Массив c_cc
используется двумя очень разными способами, зависящими от того, установлен для терминала канонический режим (т.е. установлен флаг ICANON
в элементе c_lflag
структуры termios
) или нет.
Важно понять, что в двух разных режимах есть некоторое взаимное наложение при применении номеров элементов массива. По этой причине никогда не следует смешивать значения для этих двух режимов.
Для канонического режима применяются следующие индексы:
VEOF
— символ EOF
;
VEOL
— дополнительный символ конца строки EOL
;
VERASE
— символ ERASE
;
VINTR
— символ прерывания INTR
;
VKILL
— символ уничтожения KILL
;
VQUIT
— символ завершения QUIT
;
VSUSP
— символ приостанова SUSP
;
VSTART
— символ запуска START
;
VSTOP
— символ останова STOP
.
Для канонического режима применяются следующие индексы:
VINTR
— символ INTR
;
VMIN
— минимальное значение MIN
;
VQUIT
— символ QUIT
;
VSUSP
— символ SUSP
;
VTIME
— время ожидания TIME
;
VSTART
— символ START
;
VSTOP
— символ STOP
.
Поскольку для более сложной обработки вводимых символов специальные символы и неканонические значения очень важны, мы описываем их в табл. 5.1.