Структура управления терминалом
struct termios {
    tcflag_t        c_iflag;
    tcflag_t        c_oflag;
    tcflag_t        c_cflag;
    tcflag_t        c_lflag;
    cc_t            c_cc[NCCS];
    uint32_t        reserved[3];
    speed_t         c_ispeed;
    speed_t         c_ospeed;
};
Структура termios определена в <termios.h>.
 
  -  c_iflag   
-  Режимы ввода. Это поле содержит следующие биты:    -  BRKINT   
-  Сигнал прерывания при условии BREAK.    
-  ICRNL   
-  Конвертировать CR в NL при вводе.    
-  IGNBRK   
-  Игнорировать режим BREAK при вводе.    
-  IGNCR   
-  Игнорировать CR.    
-  IGNPAR   
-  Игнорировать символы с ошибкой чётности.    
-  INLCR   
-  Конвертировать NL в CR при вводе.    
-  INPCK   
-  Включить проверку чётности.    
-  ISTRIP   
-  Удалять старший бит из символа.    
-  IXOFF   
-  Включить управление потоком данных XON/XOFF при вводе.    
-  IXON   
-  Включить управление потоком данных XON/XOFF при выводе.    
-  PARMRK   
-  Отмечать ошибки чётности в потоке ввода.  
 
-  c_oflag   
-  Режимы вывода. Это поле содержит следующие биты:    -  OPOST  Выполнить обработку выходных данных.  
 
-  c_cflag   
-  Режимы управления. Это поле содержит следующие биты:    -  CLOCAL   
-  Игнорировать управление линиями с помощью модема.    
-  CREAD   
-  Включить приём.    
-  CSIZE   
-  Количество бит на символ.    
-  CS5   
-  5бит.
-  CS6   
-  6бит.
-  CS7   
-  7бит.
-  CS8   
-  8бит.
-  CSTOPB   
-  Устанавливать два стоповых бита, иначе один.    
-  HUPCL   
-  Выключить управление модемом линиями после того, как последний процесс прекратил использование устройства (повесить трубку).    
-  IHFLOW   
-  Поддержать котроль потока ввода, используя аппаратное квитирование.    
-  OHFLOW   
-  Поддержать котроль потока вывода, используя аппаратное квитирование.    
-  PARENB   
-  Запустить генерацию четности при выводе и проверку четности на вводе.    
-  PARODD   
-  Установить нечетность на вводе и выводе, иначе - чётность.    
-  PARSTK   
-  Применить маску чётности PARODD при установке, иначе установить бит чётности в ноль.  
 
-  c_lflag   
-  Локальные режимы. Это поле содержит следующие биты:    -  ECHO   
-  Отображать вводимые симыолы.    
-  ECHOE   
-  Отображать ERASE, как удаление предыдущего символа.
-  ECHOK   
-  Отображать KILL, как удаление строки.
-  ECHONL   
-  Отображать '\n', даже если ECHOвыключен.
-  ICANON   
-  Запустить канонический режим (включено редактирование строк).    
-  IEXTEN   
-  включить расширения ЗОСРВ «Нейтрино» к POSIX.    
-  ISIG   
-  Включить сигналы.    
-  NOFLSH   
-  Отключить очистку после прерывания, выхода или паузы.    
-  TOSTOP   
-  Отправить сигнал SIGTTOUпроцессной группе фонового процесса.
 
-  c_cc[NCCS]   
-  Управляющие символы. Массив c_cc включает следующие управляющие символы:    -  c_cc[VEOF]   
-  Символ EOF.    
-  c_cc[VEOL]   
-  Символ EOL.    
-  c_cc[VERASE]   
-  Символ ERASE.    
-  c_cc[VFWD]   
-  Символ FORWARD.    
-  c_cc[VINTR]   
-  Символ INTR.    
-  c_cc[VKILL]   
-  Символ KILL.    
-  c_cc[VMIN]   
-  Значение MIN.    
-  c_cc[VQUIT]   
-  Символ QUIT.    
-  c_cc[VSUSP]   
-  Символ SUSP.    
-  c_cc[VTIME]   
-  Значение TIME.    
-  c_cc[VSTART]   
-  Символ START.    
-  c_cc[VSTOP]   
-  Символ STOP.  
 Следующие управляющие символы также определены, но действуют только в том случае, если им непосредственно предшествуют ненулевые символы в c_cc[VPREFIX][4], а сразу за ними следуют ненулевые символы в c_cc[VSUFFIX][4] и установлен бит IEXTEN флага c_lflag:  -  c_cc[VLEFT]   
-  Движение курсора влево.    
-  c_cc[VRIGHT]   
-  Движение курсора вправо.    
-  c_cc[VUP]   
-  Движение курсора вверх.    
-  c_cc[VDOWN]   
-  Движение курсора вниз.    
-  c_cc[VINS]   
-  Вставить символ.    
-  c_cc[VDEL]   
-  Удалить символ.    
-  c_cc[VRUB]   
-  Стереть символ.    
-  c_cc[VCAN]   
-  Отменить символ.    
-  c_cc[VHOME]   
-  Символ Home.    
-  c_cc[VEND]   
-  Символ End.  
 Любой из управляющих символов в массиве c_cc можно отключить, установив для этого символа значение параметра_PC_VDISABLE, который возвращается функцией fpathconf() (обычно ноль).
-  c_ispeed   
-  Входная скорость в бодах. Этот элемент должен получаться и установливаться с помощью функций cfgetispeed() и cfsetispeed().    
-  c_ospeed   
-  Выходная скорость в бодах. Этот элемент должен получаться и установливаться с помощью функций cfgetispeed() и cfsetispeed().  
POSIX 1003.1
 cfgetispeed(),  cfgetospeed(),  cfsetispeed(),  cfsetospeed(),  cfmakeraw(),  fpathconf(),  forkpty(),  openpty(),  pathconf(),  readcond(),  tcgetattr(),  tcsetattr()
 
Предыдущий раздел:  Описание API системной библиотеки