Bonjour à tous,

Je lance une commande du type a | b sous linux. le processus b lit sur son entrée standard la sortie standard de a.

Ce qui m'embête c'est la gestion du Ctrl-C, dans cette situation b s'arrête et a prend un SIGPIPE en tentant d'écrire vers sa sortie standard. Et c'est là que se situe mon problème. b envoyait vers la sortie standard les messages d'erreur (notamment ceux de a). b ayant disparu chaque écriture de a se solde par un SIGPIPE et je n'arrive pas dans a à reprendre le contrôle de mon traitement et notamment sortir en levant les locks etc...

J'ai bien positionné dans a un handler sur ce signal qui exécute un die() pourtant je n'arrive pas à reprendre la main et finaliser mon traitement. Je ne suis pas sur d'avoir réussi à expliquer simplement et clairement mon problème :-(

Comment dois je procéder ?