Freigeben über


fclose, _fcloseall

Schließt einen Stream (fclose) oder schließt alle geöffneten Streams (_fcloseall).

Syntax

int fclose(
   FILE *stream
);
int _fcloseall( void );

Parameter

stream
Zeiger zur FILE -Struktur.

Rückgabewert

fclose gibt 0 zurück, wenn der Stream erfolgreich geschlossen wurde. _fcloseall gibt die Gesamtanzahl der geschlossenen Streams zurück. Beide Funktionen geben bei einem Fehler EOF zurück.

Hinweise

Die fclose-Funktion schließt stream. Wenn stream den Wert NULLannimmt, wird der Handler für ungültige Parameter aufgerufen, wie in Parameter Validation. Wenn die weitere Ausführung zugelassen wird, legt fcloseerrno auf EINVAL fest, und gibt EOF zurück. Es wird empfohlen, den Zeiger immer zu überprüfen stream , bevor Sie diese Funktion aufrufen.

Weitere Informationen zu Rückgabecodes finden Sie unter , , _doserrno, _sys_errlistund _sys_nerr.errno

Die _fcloseall-Funktion schließt alle geöffneten Streams bis auf stdin, stdout, stderr (und in MS-DOS _stdaux und _stdprn). Außerdem werden alle von tmpfile erstellten Dateien geschlossen und gelöscht. Bei beiden Funktionen werden alle Puffer, die dem Stream zugewiesen sind, vor dem Schließen geleert. Systemseitig angegebene Puffer werden freigegeben, wenn der Stream geschlossen wird. Vom Benutzer setbuf zugewiesene Puffer und setvbuf werden nicht automatisch freigegeben.

Hinweis

Wenn fclose oder _fcloseall Funktionen zum Schließen eines Datenstroms verwendet werden, werden auch der zugrunde liegende Dateideskriptor und das Betriebssystemdateihandle (oder Socket) geschlossen. Wenn die Datei ursprünglich als Dateihandle oder Dateideskriptor geöffnet wurde und mit fclosedem Dateideskriptor geschlossen wurde, rufen Sie nicht auch auf _close , um den Dateideskriptor zu schließen. Rufen Sie die Win32-Funktion CloseHandle nicht auf, um das Dateihandle zu schließen.

fclose und _fcloseall enthalten Code zum Schutz von Störungen durch andere Threads. Informationen zu nicht sperrenden Versionen von fclose finden Sie unter _fclose_nolock.

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
fclose <stdio.h>
_fcloseall <stdio.h>

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

Beispiel

Ein Beispiel hierfür finden Sie unter fopen.

Weitere Informationen

Stream-E/A
_close
_fdopen, _wfdopen
fflush
fopen, _wfopen
freopen, _wfreopen