Je travaille avec du code qui doit être sûr de tuer l'appelant en raison de SIGPIPE
, mais les seules écritures de socket qu'il exécute vont à des sockets datagram (UDP et socket de datagramme de domaine Unix). Dois-je m'inquiéter de SIGPIPE
? J'utilise connect
sur le socket, mais des tests préliminaires (sous Linux) ont montré que je reçois simplement ECONNREFUSED
sur send si personne n'écoute sur le socket du domaine Unix. Pas sûr de ce qui se passe avec UDP.Peut écrire à un socket datagramme jamais augmenter SIGPIPE?
Je peux envelopper le tout dans des hacks pour se débarrasser de SIGPIPE
, mais si ce n'est pas un problème, je préfère économiser la surcharge et réduire la complexité du code.
Je vais vous donner une mauvaise réponse. Je pense que je l'ai déjà vu lors du démarrage d'une application au démarrage du système Linux. Je ne peux pas dire si c'était définitivement un socket datagramme qui était le problème sous-jacent, mais pour autant que je sache, nous n'utilisions pas de socket TCP pour cette application. Juste un test pour vous de considérer si cela pourrait s'appliquer à vous. – Jeff
Je pense que je pourrais juste organiser les choses à utiliser 'sendto' plutôt que' write' afin que je puisse passer ce drapeau qui désactive 'SIGPIPE'. –