Читаем Основы программирования в Linux полностью

Поскольку для более сложной обработки вводимых символов специальные символы и неканонические значения очень важны, мы описываем их в табл. 5.1.

Таблица 5.1

СимволОписание
INTRЗаставляет драйвер терминала отправить сигнал SIGINT процессам, подключенным к терминалу. Мы обсудим сигналы более подробно в главе 11
QUITЗаставляет драйвер терминала отправить сигнал SIGQUIT процессам, подключенным к терминалу
ERASEЗаставляет драйвер терминала удалить последний символ в строке
KILLЗаставляет драйвер терминала удалить всю строку
EOFЗаставляет драйвер терминала передать все символы строки во ввод, считываемый приложением. Если строка пустая, вызов read вернет ноль символов, как будто он встретил на конец файла
EOLДействует как ограничитель строки в дополнение к более привычному символу перехода на новую строку
SUSPЗаставляет драйвер терминала послать сигнал SIGSUSP процессам, подключенным к терминалу. Если ваша система UNIX поддерживает управление заданиями, текущее приложение будет приостановлено
STOPДействует как "прерыватель потока", т. е. прекращает дальнейший вывод на терминал. Применяется для поддержки управления потоком XON/XOFF и обычно задается как ASCII-символ XOFF (+)
STARTВозобновляет вывод после символа STOP, часто ASCII-символ XON
Значения TIME и MIN

Значения TIME и MIN применяются только в неканоническом режиме и действуют вместе для управления считыванием входных данных. Вместе они управляют действиями при попытке программы прочесть дескриптор файла, ассоциированный с терминалом.

Возможны четыре варианта.

□ MIN = 0 и TIME = 0. В этом случае вызов read всегда завершается сразу же. Если какие-то символы доступны, они будут возвращены, если нет, то read вернет ноль, и никакие символы не будут считаны.

□ MIN = 0 и TIME > 0. В этом случае вызов read завершится, когда все доступные символы будут считаны или когда пройдет TIME десятых долей секунды. Если нет прочитанных символов из-за превышения отпущенного времени, read вернет 0. В противном случае он вернет количество прочитанных символов.

□ MIN > 0 и TIME = 0. В этом случае вызов read будет ждать до тех пор, пока можно будет считать MIN символов, и затем вернет это количество символов. В случае конца файла возвращается 0.

□ MIN > 0 и TIME > 0. Это самый сложный случай. После вызова read ждет получения символа. Когда первый символ получен, каждый раз при получении последующего символа запускается межсимвольный таймер (или перезапускается, если он уже был запущен). Вызов read завершится, когда либо можно будет считать MIN символов, либо межсимвольное время превысит TIME десятых долей секунды. Это может пригодиться для подсчета разницы между единственным нажатием клавиши и запуском функциональной клавиатурной escape-последовательности. Тем не менее следует знать, что сетевые соединения или высокая загрузка процессора могут полностью стереть такие полезные сведения о времени.

Установив неканонический режим и используя значения MIN и TIME, программы могут выполнять посимвольную обработку ввода.

Доступ к режимам терминала из командной оболочки

Если вы хотите просмотреть параметры termios, находясь в командной оболочке, примените следующую команду для получения их списка:

$ stty -a

На установленных у авторов системах Linux, обладающих структурами termios с некоторыми расширениями по сравнению со стандартными, получен следующий вывод:

speed 38400 baud; rows 24; columns 80; line = 0;

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ;

Перейти на страницу:

Похожие книги

Полное руководство по Microsoft Windows XP
Полное руководство по Microsoft Windows XP

В книге известного американского автора описывается среда ОС Windows XP и принципы ее функционирования, приведен сравнительный анализ Windows XP с предшествующими версиями операционной системы Windows. Рассматриваются вопросы применения и модификации нового интерфейса с целью получения прямого доступа ко всем функциям Windows XP обсуждаются варианты подключения к компьютерным сетям. Несколько разделов посвящены работе с реестром и конфигурационными файлами, мультимедийным функциям и разнообразным системным службам, а также методам решения проблем с программным обеспечением и оборудованием. Особое внимание уделено обеспечению безопасности операционной системы.Издание адресовано пользователям и сетевым администраторам, желающим активно применять возможности операционной системы Windows XP (в том числе и недокументированные).

Джон Поль Мюллер , Питер Нортон

ОС и Сети / Книги по IT