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 : Sélectionner tout - Visualiser dans une fenêtre à part
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