Question

Dans solaris comment détecter la prise cassée dans send () appeler? Je ne veux pas utiliser le signal.
J'ai essayé SO_NOSIGPIPE et MSG_NOSIGNAL, mais les deux ne sont pas disponibles dans Solaris et mon programme se font tuer avec l'erreur « broken pipe ».

Est-il possible de détecter tuyau cassé?

Merci!

Était-ce utile?

La solution

Vous devez utiliser sigaction() ignorer spécifiquement le signal SIGPIPE:

struct sigaction act;

act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, NULL);

... puis send() retournera -1 avec errno réglé sur EPIPE.

Autres conseils

Je suppose que Solaris vous avez des options limitées que. Autant que je sache, sigaction suggéré par semble café la meilleure solution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top