fclose
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert in Header
<stdio.h>
|
||
|
int
fclose
(
FILE
*
stream
)
;
|
||
Schließt den angegebenen Dateistream. Alle nicht geschriebenen gepufferten Daten werden an das Betriebssystem übertragen. Alle nicht gelesenen gepufferten Daten werden verworfen.
Unabhängig davon, ob der Vorgang erfolgreich ist oder nicht, ist der Stream nicht mehr mit einer Datei assoziiert, und der durch setbuf oder setvbuf allokierte Puffer, falls vorhanden, wird ebenfalls dissoziiert und freigegeben, falls automatische Allokation verwendet wurde.
Das Verhalten ist undefiniert, wenn der Wert des Zeigers
stream
nach der Rückkehr von
fclose
verwendet wird.
Inhaltsverzeichnis |
Parameter
| stream | - | der zu schließende Dateistream |
Rückgabewert
0 bei Erfolg, EOF andernfalls
Beispiel
#include <stdio.h> #include <stdlib.h> int main(void) { const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL); int is_ok = EXIT_FAILURE; FILE* fp = fopen(fname, "w+"); if (!fp) { perror("File opening failed"); return is_ok; } fputs("Hello, world!\n", fp); rewind(fp); int c; // note: int, not char, required to handle EOF while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop putchar(c); if (ferror(fp)) puts("I/O error when reading"); else if (feof(fp)) { puts("End of file is reached successfully"); is_ok = EXIT_SUCCESS; } fclose(fp); remove(fname); return is_ok; }
Mögliche Ausgabe:
Hello, world! End of file is reached successfully
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.21.5.1 Die fclose-Funktion (S.: TBD)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.21.5.1 Die fclose-Funktion (S.: TBD)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.21.5.1 Die fclose-Funktion (S: 304)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.19.5.1 Die fclose-Funktion (S: 270)
- C89/C90 Standard (ISO/IEC 9899:1990):
-
- 4.9.5.1 Die fclose-Funktion
Siehe auch
|
(C11)
|
öffnet eine Datei
(Funktion) |
|
(C11)
|
öffnet einen bestehenden Stream mit einem anderen Namen
(Funktion) |
|
C++ documentation
für
fclose
|
|