Redirection en C

Fermé
alphon5o - 3 déc. 2009 à 19:23
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 4 déc. 2009 à 01:09
Bonjour,
je souhaite realiser un programme en C qui me permet de simuler cette commande ( tee fichier1 < fichier2 > fichier3 ). voice ce que devrai etre la syntaxe de mon programme tee-perso f1 f2 f3.
Je souhaite surtout obtenir des explications sur la façon de proceder. merci pour vos reponses

3 réponses

mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
3 déc. 2009 à 19:39
C'est un cas particulier. Les entrées et sorties standards sont juste des fichiers particulier (stdin et stdout). Ainsi tu peux écrire indifféremment :

int x;

fprintf(stdout,"plop !");
printf("plop !");

fscanf(stdin,"%d",&x);
scanf("%d",&x);


De la même façon tu as le fichier stderr pour la sortie d'erreur standard. En bash les opérateurs < et > ne font que rediriger un flux standard vers ou depuis un fichier.

Bonne chance
0
en fait c pas tout a fait ce que je cherche;
d'abord j'utilise les appels systemes donc STDIN(OUT)_FILENO et ensuite pour je suis sensé utilisé dup2 pour effectuer les redirections. et ce execlp qui doit executer ma commande.
0
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
4 déc. 2009 à 01:09
Tu veux appeler tee avec execlp si j'ai bien suivi ? Ca me parait compliqué... J'aurais fait un popen en passant à la commande les paramètres récupérés dans argv (puis un pclose)...

Pour le faire avec dup2 et execlp il faudrait que je lise les pages de man correspondantes et j'avoue que dans l'immédiat je n'ai pas trop la motivation pour :p

Bonne chance
0