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
Bonjour,



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

MERCI

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
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
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
28 nov. 2016 à 16:06
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>
0