Broken pipe is a general term for when a process is unable to output to a socket or pipe due to no process reading from the other end of the pipe.
Broken pipe is a condition in programming where a process is unable to direct output to either a pipe or socket due to the connection being closed by a peer.
Every library function that returns this error code also generates a SIGPIPE signal; this signal terminates the program if not handled or blocked.
More info in the libc documentation