Namespaces
Variants

std:: fclose

From cppreference.net
< cpp ‎ | io ‎ | c
Défini dans l'en-tête <cstdio>
int fclose ( std:: FILE * stream ) ;

Ferme le flux de fichier donné et écrit toutes les données non écrites du stream vers le périphérique de sortie associé. Toutes les données tamponnées non lues sont supprimées.

Que l'opération réussisse ou non, le flux n'est plus associé à un fichier, et le tampon alloué par std::setbuf ou std::setvbuf , s'il existe, est également dissocié et désalloué si une allocation automatique a été utilisée.

Si des données sont écrites sur un périphérique de sortie, le retour de std::fclose établit un point de contrôle observable .

(since C++26)

Le comportement est indéfini si la valeur du pointeur stream est utilisée après que std::fclose a retourné.

Table des matières

Paramètres

stream - le flux de fichier à fermer

Valeur de retour

0 en cas de succès, EOF sinon.

Exemple

#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;
}

Sortie :

End of file reached successfully

Voir aussi

ouvre un fichier
(fonction)
ouvre un flux existant avec un nom différent
(fonction)
vide le tampon de la zone d'écriture et ferme le fichier associé
(fonction membre publique de std::basic_filebuf<CharT,Traits> )
Documentation C pour fclose