Comment marche la commande > lorsqu'elle est recréée ?
Bonjour!
Je cherche à savoir comment recréer la commande > en unix.
C'est dans le cas d'une fonction commande appelée par une main qui exécute les commandes en fonction des délimiteurs "&;<>|".
Ces délimiteurs sont différenciés par une fonction parsing qui renvoit un chiffre en fonction du délimiteur et remplit un tableau avec la commande
Nous traitons ici le cas 4, la redirection >
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| case 4: // >
close(1); // on ferme l'écran
int fichierSortie = open(respP[0],O_CREAT|O_RDWR|O_TRUNC,0,640);// pourquoi on ouvre le tableau?
if(pid>0){
close(1);
printf("Dauphine>");
fflush(stdout);
} else {
close(1);// on ferme l'écran
dup(fichierSortie);
execvp(respP[0],respP);
}
break;
} |
Pourquoi doit on fermer deux fois l'écran (la sortie standard) Ca me fait une erreur sinon...