Может читать () из сокета вернуть EWOULDBLOCK? - PullRequest
0 голосов
/ 10 июня 2018

Мой код использует epoll для мультиплексирования.После обнаружения EPOLLIN он читает один байт из готового сокета.

read(fd, &onebyte, 1);

Может ли указанная выше строка вернуть EWOULDBLOCK?

1 Ответ

0 голосов
/ 10 июня 2018

да,

Ошибки :

...

EAGAIN или EWOULDBLOCK

Файловый дескриптор fd ссылается на сокет и был помечен как неблокирующий (O_NONBLOCK), и чтение будет заблокировано.POSIX.1-2001 допускает возврат любой ошибки для этого случая и не требует, чтобы эти константы имели одинаковое значение, поэтому переносимое приложение должно проверять обе возможности

ссылка: прочитанное () описание человека

...