□ 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;
Читать дальше