nonblocking- все статьи тега


Как проверить, открыт ли stdin по-прежнему без блокировки?

Мне нужно, чтобы моя программа, написанная на чистом языке Си, останавливала выполнение при закрытии stdin. В основном цикле программы выполняется неопределенная работа, и я никак не могу использовать блокирующие проверки (например, getc()) (данные не должны поступать на stdin - он просто остается открытым в течение неизвестного времени). Я намерен использовать описанную функциональность в реализации сетевого демона, размещенного в inetd, xinetd или их аналогах - он должен выдавать данные на s ...

В чем разница между асинхронными, неблокирующими архитектурами на основе событий?

в чем разница между: асинхронные, Неблокирующий и Event-base архитектуры? может что-то быть как асинхронные и неблокирующий (и событие на основе)? что самое важное в программировании, чтобы что-то иметь: асинхронный, неблокирующая и / или событийная база (или все 3)? Если бы вы могли привести примеры, это было бы здорово. этот вопрос задают, потому что я читал этот великий StackOverflow статья на аналогичную тему, но она не отвечает на мои вопросы выше. ...

С неблокирующий ввод с клавиатуры

Я пытаюсь написать программу на C (в Linux), которая циклически работает, пока пользователь не нажмет клавишу, но не должна требовать нажатия клавиши для продолжения каждого цикла. есть ли простой способ сделать это? Я думаю, что я мог бы сделать это с select() но это кажется много работы. кроме того, есть ли способ поймать ctrl -c нажатие клавиши для очистки перед закрытием программы вместо неблокирующего ввода-вывода? ...

Опрос клавиатуры (обнаружение нажатия клавиши) в python

Как я могу опросить клавиатуру из консольного приложения python? В частности, я хотел бы сделать что-то похожее на это посреди множества других операций ввода-вывода (выбор сокета, доступ к последовательному порту и т. д.): while 1: # doing amazing pythonic embedded stuff # ... # periodically do a non-blocking check to see if # we are being told to do something else x = keyboard.read(1000, timeout = 0) if len(x): # ok, some key got pressed ...