Следующая страница перечисляет некоторые атрибуты терминала, которые могут быть изменены. Флаги, перечисленные во второй колонке таблицы, являются символьными константами, определенными в <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.