FIFO issues

Enrico Forestieri forenr@lyx.org
Mon Sep 19 22:05:57 GMT 2022


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


More information about the Cygwin mailing list