Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2808 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Redirection stdout sur un FILE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Redirection stdout sur un FILE

n°2145396
Ety
Posté le 12-06-2012 à 00:16:40  profilanswer
 

Bonjour à tous,
 
Voilà, j'ai une fonction qui affiche tout bêtement un printf(), et il faut que la sortie se fasse dans un fichier.
 
J'ai fait des recherches sur freopen, fd/dup, mais je n'ai trouvé à chaque fois que des solutions qui prennent en paramètre le nom en char.
 
Moi j'en voudrais une qui prenne un argument de type FILE!!
 
Quelqu'un peut-il m'aider?  :(

mood
Publicité
Posté le 12-06-2012 à 00:16:40  profilanswer
 

n°2145397
gilou
Modérateur
Modzilla
Posté le 12-06-2012 à 03:14:43  profilanswer
 

#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);
 

Citation :

dup : duplique un descripteur et renvoie le premier descripteur libre dans la table du processus
int fd = open("tutu", O_WRONLY|O_CREAT);
close(STDOUT_FILENO);
dup(fd); // duplique sur 1 puisque après la fermeture c'est le premier numéro de fd libre
// dup duplique pour le descripteur 1 les infos de fd, qui est donc ensuite à l'état ouvert, comme fd.
close(fd); // ne sert plus a rien
printf("tutu" ); // ecrit dans tutu (maintenant associé seulement au descripteur 1)


Citation :

dup2 : permet de choisir le descripteur (et écraser l’ancien)
int fd = open("tutu", O_WRONLY|O_CREAT);
dup2(fd, STDOUT_FILENO); // fait un close sur STDOUT_FILENO puis le dup
close(fd); // ne sert plus a rien  
printf("tutu" ); // ecrit dans tutu


 
et par exemple, avec réversibilité:
int fd = open("tutu", O_WRONLY|O_CREAT);
int fd1 = dup(STDOUT_FILENO); // on duplique pour sauvegarder l'état
dup2(fd, STDOUT_FILENO);  
printf("tutu" );  
.....
dup2(fd1, STDOUT_FILENO); // On rétablit l'état de stdout
close(fd1);
close(fd);
 
Bon si tu es sous Windows, il doit (peut-être) y avoir des équivalents: http://www.suacommunity.com/dictionary/dup-entry.php
 
A+,


Message édité par gilou le 12-06-2012 à 08:57:18

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Redirection stdout sur un FILE

 

Sujets relatifs
Erreur redirectionInnosetup message "ISPPBuiltins.iss file was not found"
Laisser l'adresse de redirection dans l'url du site cibleAffecter une valeur à un input file
file_get_contents vers URL, ne marche pas... ? helpdelphi, file Directory problem!!
redirection user_agentOutputStream -> File
Changer la redirection d'un lien sur Wordpresshtacces, redirection, dossier et surtout un petit coup de main
Plus de sujets relatifs à : Redirection stdout sur un FILE


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR