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. Ist stream dies NULLder Fehler, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. 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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Anforderungen

Funktion Erforderlicher Header
fclose <stdio.h>
_fcloseall <stdio.h>

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

Beispiel

Sehen Sie sich das Beispiel für fopen.

Siehe auch

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