fflush - einen Datenstrom leeren
Standard-C-Bibliothek (
libc,
-lc)
#include <stdio.h>
int fflush(FILE *datenstrom);
Für Ausgabedatenströme erzwingt
fflush() das Schreiben
aller im User Space gepufferten Daten der gegebenen Ausgabe oder ruft die dem
datenstrom zugrundeliegende Funktion »write« auf, um ihn
zu aktualisieren.
Für Eingabedatenströme, die zu durchsuchbaren Dateien
gehören (z.B. Plattendateien, jedoch keine Pipes oder Terminals)
verwirft
fflush() alle gepufferten Daten, die aus der zugrundeliegenden
Datei abgerufen aber nicht von der Anwendung verarbeitet wurden.
Der »geöffnet«-Status des Datenstroms ist nicht davon
betroffen.
Falls das Argument
datenstrom NULL ist, leert
fflush()
alle
Ausgabedatenströme.
Für ein nicht sperrendes Gegenstück siehe
unlocked_stdio(3).
Nach erfolgreichem Programmablauf wird 0 zurückgegeben. Andernfalls wird
EOF zurückgegben und
errno dem Fehler entsprechend
gesetzt.
- EBADF
-
datenstrom ist kein geöffneter Datenstrom
oder nicht zum Schreiben geöffnet.
Die Funktion
fflush() kann auch fehlschlagen und
errno für
jeden Fehler setzen, die für
write(2) spezifiziert wurden.
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
fflush() |
Multithread-Fähigkeit |
MT-Safe |
C99, POSIX.1-2001, POSIX.1-2008.
POSIX.1-2001 spezifizierte das Verhalten zum Leeren von
Eingabedatenströmen nicht, das Verhalten wird aber in POSIX.1-2008
spezifiziert.
Beachten Sie, dass
fflush() nur die von der C-Bibliothek bereitgestellten
Puffer innerhalb des Prozesses leert. Um sicherzustellen, dass die Daten
physisch auf der Platte gespeichert werden, müssen auch die
Kernel-Puffer geleert werden, beispielsweise mit
sync(2) oder
fsync(2).
fsync(2),
sync(2),
write(2),
fclose(3),
fileno(3),
fopen(3),
fpurge(3),
setbuf(3),
unlocked_stdio(3)
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze
<
[email protected]> und Chris Leick <
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer