□ 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
.