Bonjour,
Alors ça fait une semaine que je me prends la tête sur comment récupérer le code de sortie sur un pipe multiple.
Admettons la commande : cmd1 | cmd2 | cmd3 |cmd4.
Dans mon programme, je fais (dans le fils) :
1. pipe
2. fork
3. dup
3.1 appel récursif du point 1 jusqu'à arriver à la cmd4.
3.2 exécution de la commande en cours (en partant de la 4 pour remonter
à la 1)
Du côté du père je fait un "wait4(pid, &status, 0 NULL);" (avec "status", un int déclaré un peu avant).
Mon problème c'est que j'arrive à avoir le bon code de sortie si c'est cmd1 ou cmd2 qui s'exécute mal. Mais si c'est cmd3 qui se foire, je sais qu'il y a eu un problème (le message d'erreur s'affiche). Mais le code de sortie que me retourne le tout premier processus père est 0 (car la cmd1 s'est bien exécutée).
Auriez-vous une solution ? Ce truc est en train de me rendre complètement fou
Merci d'avance
Partager