Структура управления терминалом
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 системной библиотеки