[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
Некоторые флаги режимов
Следующая страница перечисляет некоторые атрибуты терминала, которые
могут быть изменены. Флаги, перечисленные во второй колонке таблицы,
являются символьными константами, определенными в <sys/termios.h>, и
представляют собой значения отдельных битов. Приложение в конце этого
раздела перечисляет все доступные флаги. Значения флагов хранятся в
следующих четырех полях структуры termios:
c_iflag Поле c_iflag описывает режим обработки ввода. Если установлен
флаг IGNBRK, то условие разрыва (break condition)
игнорируется, то есть не помещается в очередь ввода и не может
быть считано ни одним процессом. Иначе, если установлен флаг
BRKINT, условие разрыва генерирует сигнал прерывания и
сбрасывает входную и выходную очереди.
Если установлен ISTRIP, то вводимые символы обрезаются до 7
бит, иначе они передаются как 8-битные значения. Если
установлен ICRNL, то символ CR переводится в символ NL.
Если установлен IXON, разрешается старт/стоповое управление
выводом. Получение СТОП-символа будет задерживать вывод, а
СТАРТ-символ - возобновляет его. Все СТАРТ/СТОП-символы
игнорируются и не читаются. Если установлен IXANY, любой
введенный символ будет возобновлять приостановленный вывод.
c_oflag Поле c_oflag содержит флаги, управляющие обработкой вывода.
Если установлен флаг OPOST, выводимые символы подвергаются
постобработке в соответствии с остальными флагами, иначе они
передаются без изменений.
Если установлен ONLCR, символ NL передается как пара CR-NL.
TAB3 и XTABS задают замену символов табуляции пробелами.
c_cflag Поле c_cflag управляет аппаратными атрибутами терминального
интерфейса. Биты CBAUD задают скорость передачи. Биты CSIZE
задают размер символа в битах как для приема, так и для
передачи.
Если CSTOPB установлен, передаются два стоповых бита. Флаги
PARENB и PARODD управляют контролем четности.
c_lflag Если установлен ICANON, разрешена каноническая обработка
ввода. Допускаются функции редактирования (забой и стирание
строки) и объединение вводимых символов в строки, ограниченные
символами NL, EOF, EOL, EOL2. Если ICANON не установлен,
данные для удовлетворения запросов чтения берутся прямо из
"сырой" очереди. Неканоническая обработка будет обсуждаться
вкратце.
Если установлен ECHO, на каждый полученный символ выдается
эхо. Если установлен режим ICANON, доступен ряд функций
управления эхо. Если установлены флаги ECHO и ECHOE, а ECHOPRT
не установлен, эхо для символа забоя выдается как ASCII BS SP
BS (сдвиг каретки назад - пробел - сдвиг каретки назад), что
очищает последний символ на экране терминала. Если ECHOK
установлен, а ECHOKE нет, то после символа стирания строки
передается NL, чтобы подчеркнуть, что строка была стерта.
Символ переключения режима (escape), идущий перед символами
очистки или стирания строки, лишает эти символы их функции.
Если установлен флаг ISIG, вводимые символы проверяются на
совпадение с символами INTR, QUIT, SUSP и DSUSP. Если вводимый
символ соответствует одному из них, выполняется функция,
ассоциированная с этим символом. Если ISIG не установлен, не
выполняется никакой проверки.
Если установлен флаг IEXTEN, то над входными данными будут
выполняться функции из расширенного набора, зависящие от
реализации. Этот флаг должен быть установлен для распознавания
символов WERASE, REPEINT, DISCARD и LNEXT.
НЕКОТОРЫЕ ФЛАГИ РЕЖИМОВ
IGNBRK Игнорировать условие разрыва линии
BRKINT Посылать сигнал прерывания при разрыве линии
c_iflag ISTRIP Срезать старший бит у символов
ICRNL Преобразовывать CR в NL при вводе
IXON Разрешить старт/стоповое управление вводом
IXANY Любой символ возобновляет вывод
OPOST Постобработка вывода
c_oflag ONLCR Преобразовывать NL в CR-NL при выводе
TAB3 Преобразует табуляцию в пробелы
B1200 1200 бит/сек
B2400 2400 бит/сек
CS7 Семибитные символы
c_cflag CS8 Восьмибитные символы
CSTOPB Посылать два стоповых бита (иначе - один)
PARENB Разрешить контроль четности
PARODD Проверять нечетность, иначе - четность
ISIG Разрешить сигналы
ICANON Канонический ввод (забой и стирание строки)
c_lflag ECHO Разрешить эхо
ECHOE Эхо для символа очистки BS-SP-BS
ECHOK Выдавать NL после символа стирания строки
IEXTEN Разрешить функции расширения