Subject: Re: select(2) question...
To: Jason Thorpe <thorpej@cs.orst.edu>
From: Ken Hornstein <kenh@entropic.com>
List: netbsd-users
Date: 12/13/1994 23:38:48
>Well, I've asked several folks around here, read several manpages on the
>subject, and still can't find the info that I need, so...
>
>Select() can test for 3 conditions: ready for reads, ready for writes,
>and the one that's got me stuck, ``exceptional conditions''. Can someone
>define the latter for me? Specifically, I'm wondering if the
>closing of a file descriptor during the selection process generates such
>a condition.
According to "Advanced Programming in the Unix Environment", by Richard
Stevens, an exception condition is triggered by two things:
- Out of band data arriving on a networking connection
- Certain conditions occuring on a pseudo-tty that has been placed into
packet mode.
If I'm not mistaken, an end of file is signalled by a zero-length read. If
select says the data is available for reading, and read() returns zero, then
the file is closed.
BTW - I'd just like to make a plug for the abovementioned book. It's rather
expensive, but is by far one of the best and most practical Unix books I've
ever read.
--Ken