из интерфейса программирования Linux
Неблокирующий ввод / вывод обычно используется в сочетании с моделями ввода / вывода
которые обеспечивают инициируемое фронтом уведомление о событиях ввода / вывода . ... если
Программа использует цикл, чтобы выполнить как можно больше операций ввода-вывода для файла
дескриптор, и дескриптор помечается как блокирующий, а затем в конечном итоге
системный вызов ввода / вывода будет заблокирован, когда ввод / вывод невозможен. За это
причина, каждый отслеживаемый файловый дескриптор обычно
неблокирующий режим и после уведомления о событии ввода / вывода, ввод / вывод
операции выполняются многократно до соответствующего системного вызова
(например, read () или write ()) завершается с ошибкой EAGAIN или
EWOULDBLOCK.
Из " Системное программирование Linux "
Поведение, инициируемое Edge требует другого подхода к программированию, обычно с использованием неблокирующего ввода-вывода и тщательной проверки EAGAIN.
Для уведомлений о событиях ввода / вывода, инициируемых уровнем, обычно используется ли неблокируемый ввод / вывод по той же причине? Если нет, то почему?
Спасибо.