Broken Pipe

A process tried to read or write to a pipe where the other end of the pipe no longer exists. Every library function that returns this error code also generates a SIGPIPE signal; this signal terminates the program if not handled or blocked. Thus, your program will never actually see EPIPE unless it has handled or blocked SIGPIPE

See the discussion on SIGPIPE.