Broken pipe. If you use pipes or FIFOs, you have to design your
application so that one process opens the pipe for reading before
another starts writing. If the reading process never starts, or
terminates unexpectedly, writing to the pipe or FIFO raises a
SIGPIPE signal. If SIGPIPE is blocked, handled or
ignored, the offending call fails with EPIPE instead.
Pipes and FIFO special files are discussed in more detail in Pipes and FIFOs.
Another cause of SIGPIPE is when you try to output to a socket
that isn't connected. See Sending Data.