fflush
Leert einen Stream.
int fflush(
FILE *stream
);
Parameter
- stream
Zeiger auf FILE Struktur.
Rückgabewert
fflush gibt 0 zurück, wenn der Puffer erfolgreich geschrieben wurde.Der Wert 0 wird zurückgegeben, auch in den Fällen, in denen der angegebene Stream keine Puffer verfügt oder nur zum Lesen geöffnet.Der Rückgabewert EOF gibt einen Fehler an.
Hinweis |
---|
Wenn fflushEOFzurückgibt, verloren gegangen Daten können aufgrund eines schreibens fehlgeschlagene.Wenn Sie einen Handler des schwer wiegenden Fehlers ist es am sichersten, installiert, setvbuf Puffern mit der Funktion zu drehen oder auf niedriger Ebene wie _openzu verwenden E/A-Routinen, funktioniert _closeanstelle der _write und Stream-E/A. |
Hinweise
Die fflush-Funktion einen Stream schreibt.Wenn die Datei, die stream zugeordnet ist, für die Ausgabe geöffnet ist, schreibt fflush zu dieser Datei den Inhalt des Puffers, der dem Stream zugeordnet ist.Wenn der Stream für die Eingabe geöffnet ist, löscht fflush der Inhalt aus dem Puffer.fflush negiert den Effekt eines früheren Aufrufs von ungetc für stream.Außerdem schreibt alle fflush(NULL) Streams, die für die Ausgabe geöffnet sind.Der Stream wird nach dem Aufruf geöffnet.fflush hat keine Auswirkungen auf einen nicht zwischengespeicherten Stream.
Puffer werden in der Regel vom Betriebssystem verwaltet, die die optimale Zeitpunkt bestimmt, welche Daten automatisch auf den Datenträger zu schreiben: wenn ein Puffer voll ist, wenn ein Stream geschlossen ist oder wenn ein Programm wird beendet, normalerweise ohne den Stream zu schließen.Die Datenträgercommit Funktion mit der Laufzeitbibliothek können Sie sicherstellen, dass wichtige Daten direkt auf dem Datenträger anstelle des Betriebssystems an Puffern geschrieben werden soll.Ohne ein vorhandenes Programm neu zu schreiben, können Sie diese Funktion aktivieren, indem Sie die Objektdateien des Programms mit COMMODE.OBJ verknüpfen.In der erstellten ausführbaren Datei schreiben _flushall Aufrufe an die Inhalte aller Puffer auf dem Datenträger.Nur _flushall und fflush werden durch COMMODE.OBJ betroffen.
Informationen zum Steuern der Datenträgercommit finden Sie unter Feature Stream-E/A, fopenund _fdopen.
Diese Funktion sperrt den aufrufenden Thread und daher threadsicher.Bei einer nicht sperrend - Version finden Sie unter _fflush_nolock.
Anforderungen
Funktion |
Erforderlicher Header |
---|---|
fflush |
<stdio.h> |
Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.
Beispiel
// crt_fflush.c
#include <stdio.h>
#include <conio.h>
int main( void )
{
int integer;
char string[81];
// Read each word as a string.
printf( "Enter a sentence of four words with scanf: " );
for( integer = 0; integer < 4; integer++ )
{
scanf_s( "%s", string, sizeof(string) );
printf( "%s\n", string );
}
// You must flush the input buffer before using gets.
// fflush on input stream is an extension to the C standard
fflush( stdin );
printf( "Enter the same sentence with gets: " );
gets_s( string, sizeof(string) );
printf( "%s\n", string );
}
Dies ist ein Test Dies ist testThis
ist ein Test Dies ist ein testEnter ein Satz von vier Wörtern mit scanf: Dies ist ein Test Dieses - entspricht ein, eine, einem, einen, einer, eines test Geben Sie den gleichen Satz mit abruft: Dies ist ein Test Dies ist ein Test