Why do I get EPROTO from read()?
Unix Socket FAQ for Network programming
(Continued from previous question...)
Why do I get EPROTO from read()?
EPROTO means that the protocol encountered an unrecoverable error for
that endpoint. EPROTO is one of those catch-all error codes used by
STREAMS-based drivers when a better code isn't available.
Not quite to do with EPROTO from read(), but I found out once that on
some STREAMS-based implementations, EPROTO could be returned by
accept() if the incoming connection was reset before the accept
completes.
On some other implementations, accept seemed to be capable of blocking
if this occured. This is important, since if select() said the
listening socket was readable, then you would normally expect not to
block in the accept() call. The fix is, of course, to set nonblocking
mode on the listening socket if you are going to use select() on it.
(Continued on next question...)
Other Interview Questions
|