Conozco los usos individuales de SIGPIPE y SIGIGN .
Que hace
signal(SIGPIPE, SIG_IGN);hacer exactamente?
signal(SIGPIPE, SIG_IGN); simplemente ignora la señal SIGPIPE . Pasar SIG_IGN como manejador ignora una señal dada (excepto las señales SIGKILL y SIGSTOP que no pueden ser capturadas o ignoradas).
Aparte, generalmente se recomienda usar sigaction(2) sobre signal(2) ya que sigaction ofrece un mejor control y tampoco necesita "restablecer" el controlador en algunos sistemas (que siguen el comportamiento de la señal System V).