fflush(3)

BEZEICHNUNG
fflush - einen Datenstrom leeren

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <stdio.h>

int fflush(FILE *_Nullable datenstrom);

BESCHREIBUNG
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).

RÜCKGABEWERT
Nach erfolgreichem Programmablauf wird 0 zurückgegeben. Andernfalls wird EOF zurückgegben und errno dem Fehler entsprechend gesetzt.

FEHLER

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.

ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
fflush() | Multithread-Fähigkeit | MT-Sicher

STANDARDS
C11, POSIX.1-2008.

GESCHICHTE
C89, 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.

ANMERKUNGEN
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).

SIEHE AUCH
fsync(2), sync(2), write(2), fclose(3), fileno(3), fopen(3), fpurge(3), setbuf(3), unlocked_stdio(3)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, Chris Leick <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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: debian-l10n-german@lists.debian.org.