Traductions de cette page?:

fflush

Syntaxe :

    #include <cstdio>
     int fflush( FILE *fichier );

La fonction fflush() possède un comportement différent selon le type de fichier :

  • Si le fichier est un flux de sortie (ouvert avec “w” ou “a” dans fopen), alors elle force l'écriture du buffer dans le fichier
  • Si le fichier est un flux d'entrée (ouvert avec “r” dans fopen), son comportement n'est pas défini (et il est donc déconseillé de l'utiliser dans ce cas…)

fflush() est très pratique pour le débogage, lorsqu'un programme échoue (par un segmentation fault par exemple) avant d'avoir pu afficher à l'écran des informations utiles.
Dans ce cas, appeler fflush sur le flush de sortie standard immédiatement après l'écriture des informations de débogage permet de s'assurer qu'elle seront bien écrites.

     printf( "Avant le premier appel\n" );
     fflush( stdout );
     fonction_potentiellement_dangereuse();
     printf( "Avant le second appel\n" );
     fflush( stdout );
     dereferencement_interdit();

Voir aussi : http://c-faq.com/stdio/stdinflush.html (anglais)

Sujets relatifs : fclose, fopen, fread, fpurge, fwrite, getc, putc