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 : 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
	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...