Как предотвратить SIGPIPEs (или обращаться с ними должным образом)

у меня есть небольшая программа-сервер, принимающий соединения на TCP или локальный UNIX-сокет, читает простые команды и, в зависимости от команды, отправляет ответ. Проблема в том, что клиент может не заинтересованы в ответ иногда и выходит рано, так что писать для этого сокета вызовет SIGPIPE и сделать мое падение сервера. Какая лучшая практика предотвращения аварии здесь? Есть ли способ проверить, если другой стороне линии все еще читаете? (select (), кажется, не работают так, как он всегда говорит, что сокет готов к записи). Или я должен просто поймать SIGPIPE с обработчиком, и игнорировать его?

Найдено 7 ответов:

How to prevent SIGPIPEs (or handle them properly)

http://stackoverflow.com/questions/108183/how-to-prevent-sigpipes-or-handle-them-properly

Посмотреть решение →