Unix Man (Справочное руководство)


TERMIO(7) - часть 8


Если установлен бит ICANON, то разрешена каноническая обработка ввода. Это означает разрешение функций редактирования [забоя (ERASE) и уничтожения (KILL)], об единения вводимых символов в строки, разделенные символами NL, EOF и EOL. Если бит ICANON не установлен, то запросы на чтение удовлетворяются прямо из очереди ввода. Запрос на чтение не будет удовлетворен до тех пор, пока не поступит по крайней мере MIN символов или не истечет время задержки TIME между поступлениями символов (то есть время TIME начинает отсчитываться после поступления первого символа). Такой подход позволяет эффективно читать во время вспышек активности ввода и в то же время разрешает посимвольный ввод. Нулевое значение TIME трактуется как бесконечная задержка, то есть запрос на чтение будет удовлетворен, только когда поступит по крайней мере MIN символов. Значения MIN и TIME хранятся соответственно в позициях для символов EOF и EOL (см. включаемый файл <sys/termio.h>). Время задается в десятых долях секунды.

Если установлены биты XCASE и ICANON, то при вводе буква воспринимается как большая, когда перед ней стоит символ \, и выводится в виде пары символов, первый из которых есть \. В этом режиме следующие управляющие последовательности генерируются при выводе и воспринимаются при вводе:

для ввода символа:используйте:

`\'
|\!
~\^
{\(
}\)
\\\

Например, A вводится как \a, \n как \\n, а \N как \\\n.

Если установлен бит ECHO, то при получении символа происходит его эхоотображение.

Когда установлен бит ICANON, возможны следующие функции эхоотображения. Если установлены биты ECHO и ECHOE, то символ забоя отображается как тройка ASCII-символов (BS, SP, BS), в результате чего последний из введенных перед этим символов исчезнет с экрана. Если установлен бит ECHOE, а ECHO нет, то символ забоя отображается как пара (SP BS). Если установлен бит ECHOK, то после символа уничтожения будет выведен перевод строки (NL), чтобы подчеркнуть факт уничтожения. Заметим, что символы забоя и уничтожения могут быть экранированы, если перед ними поместить \, и тогда они теряют специальный смысл. Если установлен бит ECHONL, то перевод строки будет отображаться даже в том случае, когда не установлен бит ECHO, что полезно для терминалов с локальным эхоотображением (так называемых полудуплексных). Символ конца файла (EOF) не отображается, если только он не экранирован. Так как подразумеваемым признаком конца файла служит ASCII-символ EOT (конец передачи), эхоотображение конца файла привело бы к освобождению линии терминалами, отвечающими на EOT.




Начало  Назад  Вперед