Partager via


_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’y a pas de 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, fopenet _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

Voir aussi

E/S de flux
_commit
fclose, _fcloseall
fflush
setvbuf