Probleme d'execu,tion d'une commande utilisant un pipe
Bonjour , j'ai implémenté un programme exécutant une commande shell avec pipe. Cependant après l'exécution du programme dans un mini shell ce dernier ne me rend pas la main; comme si il y avait un exit à la fin du programme. Je n'arrive pas à voir ou se trouve l'erreur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
int execute_commande_pipe(Expression *e){
pid_t pid = 0;
int status = 0, tube[2] = {0};
pipe(tube);
pid = fork();
switch(pid){
case (pid_t) -1:
perror("processus");
exit(2);
break;
case (pid_t) 0:
close(tube[0]);
dup2(tube[1], 1);
close(tube[1]);
evaluer_expr(e->gauche);
exit(0);
break;
default:
close(tube[1]);
dup2(tube[0], 0);
close(tube[0]);
evaluer_expr(e->droite);
break;
}
} |
ça fait une journée que je m'arrache les cheveux la dessus. Please help.
En vous remerciant d'avance pour vos réponses