Ken Brown wrote: > I did an internet search on this issue and found the following, which describes the > situation we're discussing: > https://stackoverflow.com/questions/14594508/fifo-pipe-is-always-readable-in-select > According to that post, select on Linux will wait for a writer the first time it's > called to check read readiness for a FIFO opened for reading with O_NONBLOCK set. > But if the writer then closes the FIFO, subsequent calls to select will always find > the FIFO read ready (and read will return 0). This behavior is not documented, as far as > I can tell, and in fact it contradicts the existing documentation (both POSIX and Linux). > So I don't think someone trying to write a portable program should rely on it. Please, note that this code was working on cygwin the way it works on linux until some time ago, maybe last year, I am not sure. I also found this stackoverflow discussion: https://stackoverflow.com/questions/28851639/select-with-non-blocking-reads I tried the code also on Solaris and NetBSD and it works exactly as on linux, so I think it is portable. -- Enrico