Fflush
Fermé
kar
-
28 nov. 2016 à 02:20
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 28 nov. 2016 à 16:06
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 28 nov. 2016 à 16:06
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 28/11/2016 à 16:04
Modifié par [Dal] le 28/11/2016 à 16:04
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
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
28 nov. 2016 à 16:06