_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 gibt keine Fehlerrückgabe.
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 das 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 _fdopen
fopen
.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der 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