Мой код использует epoll для мультиплексирования.После обнаружения EPOLLIN он читает один байт из готового сокета.
read(fd, &onebyte, 1);
Может ли указанная выше строка вернуть EWOULDBLOCK?
да,
Ошибки : ... EAGAIN или EWOULDBLOCK Файловый дескриптор fd ссылается на сокет и был помечен как неблокирующий (O_NONBLOCK), и чтение будет заблокировано.POSIX.1-2001 допускает возврат любой ошибки для этого случая и не требует, чтобы эти константы имели одинаковое значение, поэтому переносимое приложение должно проверять обе возможности
Ошибки :
...
EAGAIN или EWOULDBLOCK
Файловый дескриптор fd ссылается на сокет и был помечен как неблокирующий (O_NONBLOCK), и чтение будет заблокировано.POSIX.1-2001 допускает возврат любой ошибки для этого случая и не требует, чтобы эти константы имели одинаковое значение, поэтому переносимое приложение должно проверять обе возможности
ссылка: прочитанное () описание человека