_flushall

Leert alle Streams und löscht alle Puffer.

Syntax

int _flushall( void );

Rückgabewert

_flushall gibt die Anzahl der geöffneten Streams zurück (Eingaben und Ausgaben). Es wird kein Fehler zurückgegeben.

Hinweise

Standardmäßig schreibt die _flushall-Funktion den Inhalt aller Puffer, die mit geöffneten Ausgabestreams verknüpft sind, in die entsprechenden Dateien. Aus allen Puffern, die geöffneten Eingabestreams zugeordnet sind, wird der aktuelle Inhalt gelöscht. (Diese Puffer werden normalerweise vom Betriebssystem verwaltet, das die optimale Zeit zum automatischen Schreiben der Daten auf den Datenträger bestimmt: wenn ein Puffer ist voll, wenn ein Stream geschlossen wird oder wenn ein Programm normal beendet wird, ohne die Streams zu schließen.)

Wenn ein Lesevorgang nach einem Aufruf von _flushall erfolgt, werden neue Daten aus den Eingabedateien in die Puffer gelesen. Alle Streams bleiben nach dem Aufruf von _flushall geöffnet.

Mit der Datenträgercommitfunktion der Laufzeitbibliothek können Sie sicherstellen, dass wichtige Daten direkt auf den Datenträger anstatt in die Betriebssystempuffer geschrieben werden. Ohne umschreiben eines vorhandenen Programms können Sie dieses Feature aktivieren, indem Sie die Objektdateien des Programms mit Commode.obj verknüpfen. In der resultierenden ausführbaren Datei werden Aufrufe zum _flushall Schreiben des Inhalts aller Puffer auf den Datenträger aufgerufen. Nur _flushall und fflush werden von "Commode.obj" beeinflusst.

Informationen zum Steuern der Commit-to-Disk-Funktion finden Sie unter Stream-E/A und _fdopenfopen.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Anforderungen

Funktion Erforderlicher Header
_flushall <stdio.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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

Siehe auch

Stream-E/A
_commit
fclose, _fcloseall
fflush
setvbuf