I couldn't find anything substantial about fifo semantics in the man pages or SUS. Is it defined that writing to a fifo will block until someone has read the data from the other end?