std::fclose
Von cppreference.com
| Definiert in Header <cstdio> |
||
| int fclose( std::FILE* stream ); |
||
Schließt den gegebenen Dateistream und schreibt alle ungeschriebenen Daten aus dem Puffer von stream auf das zugehörige Ausgabegerät. Alle ungelesenen gepufferten Daten werden verworfen.
Unabhängig davon, ob die Operation erfolgreich ist oder nicht, ist der Stream nicht mehr mit einer Datei verknüpft, und der von std::setbuf oder std::setvbuf zugewiesene Puffer, falls vorhanden, wird ebenfalls getrennt und bei automatischer Zuweisung freigegeben.
|
Wenn Daten auf ein Ausgabegerät geschrieben werden, etabliert die Rückkehr von |
(seit C++26) |
Das Verhalten ist undefiniert, wenn der Wert des Zeigers stream nach der Rückkehr von std::fclose verwendet wird.
Inhalt |
[bearbeiten] Parameter
| stream | - | Der zu schließende Dateistream |
[bearbeiten] Rückgabewert
0 bei Erfolg, EOF andernfalls.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <cstdio> #include <cstdlib> int main() { int is_ok = EXIT_FAILURE; FILE* fp = std::fopen("/tmp/test.txt", "w+"); if (!fp) { std::perror("File opening failed"); return is_ok; } int c; // Note: int, not char, required to handle EOF while ((c = std::fgetc(fp)) != EOF) // Standard C I/O file reading loop std::putchar(c); if (std::ferror(fp)) std::puts("I/O error when reading"); else if (std::feof(fp)) { std::puts("End of file reached successfully"); is_ok = EXIT_SUCCESS; } std::fclose(fp); return is_ok; }
Ausgabe
End of file reached successfully
[bearbeiten] Siehe auch
| öffnet eine Datei (function) | |
| öffnet einen existierenden Stream mit einem anderen Namen (function) | |
| Leert den Ausgabepuffer und schließt die zugehörige Datei (öffentliche Member-Funktion von std::basic_filebuf<CharT,Traits>) | |
| C-Dokumentation für fclose
| |