Cómo prevenir los SIGPIPEs (o manejarlos adecuadamente)

Tengo un pequeño programa de servidor que acepta conexiones en un socket TCP o UNIX local, lee un comando simple y, según el comando, envía una respuesta. El problema es que el cliente puede no tener interés en la respuesta a veces y se cierra antes, por lo que escribir en ese socket causará un SIGPIPE y hará que mi servidor se bloquee. ¿Cuál es la mejor práctica para prevenir el accidente aquí? ¿Hay alguna forma de verificar si el otro lado de la línea todavía está leyendo? (select () no parece funcionar aquí ya que siempre dice que el socket es de escritura). ¿O debería simplemente capturar el SIGPIPE con un manejador e ignorarlo?

Respuestas a la pregunta(10)

Su respuesta a la pregunta