□ TABDLY
— выбор задержки для символа табуляции;
□ BSDLY
— выбор задержки для символа Backspace
;
□ 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
;
Читать дальше