Namespaces
Variants

fclose

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

Ferme le flux de fichier donné. Toutes les données tamponnées non écrites sont vidées vers le système d'exploitation. Toutes les données tamponnées non lues sont ignorées.

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

Le comportement est indéfini si la valeur du pointeur stream est utilisée après que 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 <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;
}

Sortie possible :

Hello, world!
End of file is reached successfully

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.21.5.1 La fonction fclose (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.21.5.1 La fonction fclose (p: TBD)
  • Norme C11 (ISO/IEC 9899:2011):
  • 7.21.5.1 La fonction fclose (p: 304)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.19.5.1 La fonction fclose (p: 270)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.9.5.1 La fonction fclose

Voir aussi

ouvre un fichier
(fonction)
ouvre un flux existant avec un nom différent
(fonction)