You're using sysread, right? When sysread return zero bytes read, it indicates EOF. For a fifo, that means the other end of the fifo was closed. The fifo is still closed every subsequent time you call select, so select keeps signaling that the handle needs to be serviced. Similarly, if sysread returns undef, it indicates an error occurred.
Update: Disambiguated pronouns and clarified what EOF means for a fifo.
In reply to Re: Malfunctioning select() call on a FIFO
by ikegami
in thread Malfunctioning select() call on a FIFO
by Llew_Llaw_Gyffes
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |