Bonsoir!
Je souhaitais savoir comment fonctionnaient les cases si un des case était vide, cela permet il de passer au case suivant?
Cela me serait pratique par exemple pour, dans le cas d'un projet de shell unix, pour ne pas développer deux fois les fonctions new line et ; qui font à peu près le meme travail!
(Considérer une new line comme un ; global)
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
28
29
30
31 switch(symbole){ case 0: // NL case 1: // ; com[i++] = 0; pid=fork(); /* Mettre un if pour que le pere observe le fils le exec sera dans le fils */ if(pid>0){ int val_wait = wait(&status); if(WIFEXITED(status)){ /* i = 0 permet d'executer la commande suivante */ i = 0; /* A la fin de l execution normale du fils, on retourne vers le processsus pere le return 0 permet d'afficher le prompt Prompt> conformement au switch du main.c */ return 0; } } else{ i=0; execvp(com[i],com); i++; } break;
Partager