Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Rediriger le plux de sortie


Sujet :

C

  1. #1
    Membre régulier
    Rediriger le plux de sortie
    Comment plus ton regirige les plus de sortie (stdout) vers autre chose que l'ecran ? ... un fichier par exemple.

  2. #2
    Rédacteur

    Pour le faire directement dans le code C, tu peux regarder du cote des fonction dup2. De memoire la question avait deja ete evoquer et resolue sur ce forum.

    Sinon tu peux aussi tout simplement adapte l'appel du programme pour rediriger le flux de sortie standard vers un fichier, si ton progamme s'appelle prog.exe :

  3. #3
    Membre du Club
    sous linux, il y a les appels systemes dup() et dup2()

    sous windows: j'avais vu un algo dans "C/C++ la bible du programmeur" mais je ne l'ai plus en tete, desolé

  4. #4
    Membre éclairé
    Ou sinon tu peux utiliser d'autre FILE *. Par exemple si c'est pour du debug que tu veux mettre soit en stdout soit dans un fichier, tu peux faire ca :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (nom_fichier!=NULL) {/* fichier debug */
        output=fopen(nom_fichier,"w");
        /* TODO : error */
    }else{
        output=stdout;
    }
    /* ... */
    fprintf(output,"Debug :...
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Membre éprouvé
    La fonction freopen peut convenir non ?
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    FILE* freopen(char* fichier, char* mode, FILE* flux) ;


    Exemple :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    char NomFicher[]="fichier.txt" ;
    freopen(NomFichier, "w" , stdout); /* nom du fichier, mode de lecture, sortie standard */


    Nas'

  6. #6
    Membre régulier
    Oki merci !!

    Je pense que je vais réussir a me debrouiller avec ca.

###raw>template_hook.ano_emploi###