The obvious place to look for an answer would be the open (2) man page, which, under the heading O_NONBLOCK, says:
When possible, the file opens in non-blocking mode. Neither open (), nor any subsequent file operations, the handle that is returned will cause the call process to wait.
[...]
FIFO ( ) . fifo (7). O_NONBLOCK , . fcntl (2).
, , , fifo (7) fcntl (2) :
, FIFO, .
FIFO . , ENXIO ( ), .
Linux, FIFO . POSIX undefined.
, " ": FIFO , O_NONBLOCK open() ( ).
fcntl? open (2), , , - " " " ". , , , , , :
(, (2) (2)) , , , O_NONBLOCK. O_NONBLOCK , , , .
?
( " " ) (2) truncate (2), , F_SETLEASE, , , ( SIGIO). [...]
, , , , .
[...] O_NONBLOCK open (2), EWOULDBLOCK, , .
, : , , , open() , .
" ", , O_NONBLOCK open(), , open() , - . - , man-, .