Jak zapobiec SIGPIPE (lub obsłużyć je poprawnie)

Mam mały program serwera, który akceptuje połączenia na TCP lub lokalnym gnieździe UNIX, odczytuje proste polecenie i, w zależności od polecenia, wysyła odpowiedź. Problem polega na tym, że klient czasami nie interesuje się odpowiedzią i wychodzi wcześniej, więc zapis do tego gniazda spowoduje SIGPIPE i spowoduje awarię mojego serwera. Jaka jest najlepsza praktyka, aby zapobiec katastrofie? Czy istnieje sposób sprawdzenia, czy druga strona linii nadal czyta? (select () nie działa tutaj, ponieważ zawsze mówi, że gniazdo jest zapisywalne). Czy powinienem po prostu złapać SIGPIPE za pomocą programu obsługi i zignorować to?

questionAnswers(10)

yourAnswerToTheQuestion