Управляющие символы — это символы со специальными значениями, которые могут отличаться в зависимости от того, находится ли терминал в каноническом или неформатируемом режиме ввода, и в зависимости от установок различных управляющих флагов. Каждое смещение (кроме VMIN
и VTIME
) в массиве с_сс
обозначает действие и содержит код символа, предназначенный для этого действия. Например, установите символ прерывания на Control-C с помощью следующего кода:
ts.с_сс[VINTR] = CTRLCHAR('С');
Макрос CTRLCHAR()
определен как
#define CTRLCHAR(ch) ((ch)&0x1F)
Некоторые системы имеют макрос CTRL()
, определенный в
, но не поддерживаемый во всех системах, поэтому определение нашей собственной версии будет более надежным. Мы используем запись ^C для обозначения Control-C.
Расположения символов, не определенные POSIX, активны только в случае установки локального управляющего флага IEXTEN(c_lflag)
.
Управляющие символы, которые вы видите как индексы массива с_сс
, перечислены ниже.