fclose
Von cppreference.com
| Definiert in Header <stdio.h> |
||
| int fclose( FILE* stream ); |
||
Schließt den gegebenen Dateistrom. Alle ungeschriebenen gepufferten Daten werden an das Betriebssystem geleert. Alle ungelesenen gepufferten Daten werden verworfen.
Unabhängig davon, ob die Operation erfolgreich ist oder nicht, ist der Stream nicht mehr mit einer Datei verbunden, und der von setbuf oder setvbuf zugewiesene Puffer, falls vorhanden, wird ebenfalls getrennt und deallokiert, wenn eine automatische Zuweisung verwendet wurde.
Das Verhalten ist undefiniert, wenn der Wert des Zeigers stream nach der Rückkehr von fclose verwendet wird.
Inhalt |
[bearbeiten] Parameter
| stream | - | der zu schließende Dateistrom |
[bearbeiten] Rückgabewert
0 bei Erfolg, EOF andernfalls
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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
[bearbeiten] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.21.5.1 Die Funktion fclose (p: TBD)
- C17-Standard (ISO/IEC 9899:2018)
- 7.21.5.1 Die Funktion fclose (p: TBD)
- C11-Standard (ISO/IEC 9899:2011)
- 7.21.5.1 Die Funktion fclose (p: 304)
- C99-Standard (ISO/IEC 9899:1999)
- 7.19.5.1 Die Funktion fclose (p: 270)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 4.9.5.1 Die Funktion fclose
[bearbeiten] Siehe auch
| (C11) |
öffnet eine Datei (Funktion) |
| (C11) |
öffnet einen existierenden Stream mit einem anderen Namen (Funktion) |
| C++ Dokumentation für fclose
| |