_flushall
Vide tous les flux ; efface toutes les mémoires tampons.
Syntaxe
int _flushall( void );
Valeur retournée
_flushall
retourne le nombre de flux ouverts (entrée et sortie). Il n’existe aucun retour d’erreur.
Notes
Par défaut, la fonction _flushall
écrit dans des fichiers appropriés le contenu de toutes les mémoires tampons associées aux flux de sortie ouverts. Le contenu de toutes les mémoires tampons associées aux flux d’entrée ouverts est effacé. (Ces mémoires tampons sont normalement gérées par le système d’exploitation, qui détermine à quel moment les données doivent être automatiquement écrites sur le disque : quand une mémoire tampon est saturée, quand un flux est fermé ou quand un programme se termine normalement sans fermer les flux.)
Si une lecture suit un appel à _flushall
, de nouvelles données sont lues à partir des fichiers d’entrée dans les mémoires tampons. Tous les flux restent ouverts après l’appel à _flushall
.
La fonctionnalité de validation sur disque de la bibliothèque runtime garantit que les données critiques sont écrites directement sur le disque plutôt que dans les mémoires tampons du système d’exploitation. Sans réécrire un programme existant, vous pouvez activer cette fonctionnalité en liant les fichiers objet du programme à Commode.obj. Dans le fichier exécutable résultant, les appels pour _flushall
écrire le contenu de toutes les mémoires tampons sur le disque. Seuls _flushall
et fflush
sont affectés par Commode.obj.
Pour plus d’informations sur le contrôle de la fonctionnalité commit-to-disk, consultez Flux d’E/S, fopen
et _fdopen
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Fonction | En-tête requis |
---|---|
_flushall |
<stdio.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_flushall.c
// This program uses _flushall
// to flush all open buffers.
#include <stdio.h>
int main( void )
{
int numflushed;
numflushed = _flushall();
printf( "There were %d streams flushed\n", numflushed );
}
There were 3 streams flushed