Namensräume
Varianten
Aktionen

std::fclose

Von cppreference.com
< cpp‎ | io‎ | c
 
 
 
C-Style I/O
Typen und Objekte
Funktionen
Datei-Zugriff
Direkte Ein-/Ausgabe
Unformatierte Ein-/Ausgabe
Formatierte Eingabe
(C++11)(C++11)(C++11)    
(C++11)(C++11)(C++11)    
 
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 std::fclose einen beobachtbaren Kontrollpunkt.

(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

#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) [bearbeiten]
öffnet einen existierenden Stream mit einem anderen Namen
(function) [bearbeiten]
Leert den Ausgabepuffer und schließt die zugehörige Datei
(öffentliche Member-Funktion von std::basic_filebuf<CharT,Traits>) [bearbeiten]
C-Dokumentation für fclose