Redirection en C

alphon5o -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
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 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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
alphon5o
 
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 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
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