Como evitar SIGPIPEs (ou manipulá-los corretamente)

Eu tenho um pequeno programa de servidor que aceita conexões em um soquete TCP ou UNIX local, lê um comando simples e, dependendo do comando, envia uma resposta. O problema é que o cliente pode não ter interesse na resposta, às vezes, e sai cedo, por isso, gravar nesse soquete causará um SIGPIPE e causará uma pane no servidor. Qual é a melhor prática para evitar o acidente aqui? Existe uma maneira de verificar se o outro lado da linha ainda está lendo? (select () não parece funcionar aqui, pois sempre diz que o socket é gravável). Ou devo pegar o SIGPIPE com um manipulador e ignorá-lo?

questionAnswers(10)

yourAnswerToTheQuestion