Fflush [Fermé]

Signaler
-
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
-
Bonjour,



je ne comprend pas le fonctionnement d'utiliser
fflush (FILE *flux);
Pourriez vous me l'expliciter.

MERCI

1 réponse

Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
Salut kar,

Le standard du C permet aux flux d'être "bufferisés", c'est à dire que le fonctionnement du flux repose sur une mémoire tampon intermédiaire. Cela optimise les temps nécessaires au traitement des I/O par le système d'exploitation.

Ainsi, le fonctionnement des fonctions standard du C fputs, fwrite, fprintf,..., est normalement bufferisé. Il y a des fonctions standard du C, d'ailleurs, qui permettent de fixer le buffer à utiliser, de modifier le type de buffer ou de le désactiver pour un flux donné :voir setvbuf() et setbuf()

Lorsqu'un flux est ouvert en écriture et qu'il est bufferisé, cela signifie qu'une mémoire tampon est utilisée pour accumuler de façon intermédiaire les caractères à écrire, et qu'ils ne sont écrits (d'un coup) que :

- lorsque le tampon est plein
- ou lorsque le flux est fermé avec fclose(), ou freopen()
- ou le programme s'arrête (sous réserve que son arrêt soit normal)

fflush() permet de forcer l'écriture du contenu du tampon, même si le tampon n'est pas plein, sans fermer le flux, ni le programme.

http://www.cplusplus.com/reference/cstdio/fflush/


Dal
Messages postés
5491
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 avril 2021
932
La taille par défaut du buffer pour une implémentation du C donnée est définie par la macro BUFSIZ, qui est définie dans
<stdio.h>