Книга: Разработка приложений в среде Linux. Второе издание

24.1.4. Проверка ожидающего ввода

24.1.4. Проверка ожидающего ввода

Во многих случаях вам нужно будет проверять доступные символы, не прибегая при этом к блокировке. Это удобно делать тогда, когда программе необходимо перейти к фоновой обработке, а пользователю в этот момент посылается запрос на ввод данных (особенно в видеоиграх). Функция SLang_input_pending() определена следующим образом:

int SLang_input_pending(int timeout);

Функция SLang_input_pending() возвращает true, если символы стали доступными в течение n десятых долей секунды. Она возвращает результат, как только символы становятся доступными, и false, если ни один из символов не окажется доступным в течение определенного периода времени. Если задать нулевой период времени, то функция SLang_input_pending() сообщит о доступных в данный момент символах.

Это поведение легко пронаблюдать. Для этого в программе slecho.с достаточно изменить проверку в цикле while:

while (ch != 'q' && SLang_input_pending(20))

Теперь программа будет ожидать ввода дополнительных данных не более двух секунд. По истечении двух секунд, если никакие данные не будут введены, работа программы будет завершена.

Оглавление книги


Генерация: 1.372. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз