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 NULL
annimmt, wird der Handler für ungültige Parameter aufgerufen, wie in Parameter Validation. Wenn die weitere Ausführung zugelassen wird, legt fclose
errno
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_errlist
und _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 fclose
dem 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