FCLOSE |
Fermer fichier |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int fclose(FILE *ptrfichier); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
Description
Cette fonction effectue la fermeture d'un fichier.
Remarques
- La fonction fclose() ferme le fichier associé au flux de données et vide son tampon.
- Après une fonction fclose(), le flux de données n'est plus connecté au fichier et tous les tampons alloués automatiquement sont désalloués.
- Si la fonction fclose() réussit, une valeur zéro est retourné; sinon EOF est retourné. Si vous essayez de fermer un fichier ayant déjà été fermé, alors une erreur se produit. La suppression du support d'entreposage avant la fermeture d'un fichier génère également une erreur, tout comme le manque d'espace disque disponible suffisant.
- Définition et utilité : La fonction fclose en C++ est utilisée pour fermer un fichier ouvert avec les fonctions de la bibliothèque standard, comme fopen ou freopen. Elle permet de libérer les ressources associées à un fichier ouvert, de s'assurer que toutes les données tamponnées sont correctement écrites dans le fichier, et d'éviter les fuites de mémoire ou de descripteurs de fichiers.
- Fermeture des fichiers : Lorsque vous ouvrez un fichier en mode lecture, écriture ou ajout avec des fonctions comme fopen, le fichier reste ouvert tant qu'il n'est pas explicitement fermé. L'appel à fclose permet de garantir que toutes les opérations sur le fichier sont terminées et que le fichier est proprement fermé, ce qui est essentiel pour éviter les corruptions de données.
- Écriture des données tamponnées : Si le fichier a été ouvert en mode écriture, fclose assure que toutes les données encore en mémoire tampon (non écrites) sont effectivement transférées dans le fichier avant sa fermeture. Cela est important, car certaines opérations d'écriture peuvent être mises en tampon pour des raisons de performance, et sans un appel explicite à fclose, ces données pourraient ne pas être écrites.
- Retour de fclose : La fonction fclose renvoie 0 en cas de succès. Si une erreur se produit, elle renvoie EOF (une constante définie généralement comme -1). En cas d'erreur, il est recommandé de vérifier l'état du fichier après la fermeture, car cela pourrait signaler des problèmes d'écriture ou de gestion des fichiers.
- Fermeture des fichiers au programme : Dans un programme ouvrant plusieurs fichiers, chaque fichier ouvert doit être correctement fermé avec fclose avant la fin du programme. Oublier de fermer un fichier peut entraîner une perte de données, une saturation des descripteurs de fichiers, ou des erreurs d'accès ultérieures lors de l'utilisation du fichier dans d'autres parties du programme.
- Fermeture automatique à la fin du programme : Bien que fclose soit appelé explicitement pour fermer un fichier, dans certains systèmes d'exploitation, tous les fichiers ouverts sont fermés automatiquement lorsque le programme se termine. Cependant, il est fortement recommandé de fermer les fichiers explicitement à l'aide de fclose pour garantir la sécurité des données et le bon fonctionnement du programme, surtout dans des programmes longs ou complexes.
- Précautions et bonne pratique : Il est important de toujours vérifier si un fichier a été ouvert avec succès avant de tenter de le fermer. Par exemple, si fopen échoue, la valeur du pointeur FILE * sera nullptr (ou NULL dans les versions plus anciennes de C++). Tenter de fermer un fichier non ouvert ou déjà fermé peut entraîner des comportements indéfinis, il est donc nécessaire de toujours vérifier que le fichier est valide avant d'appeler fclose.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :

Voir également
Langage de programmation - C++ - Référence procédures et fonctions - feof
Langage de programmation - C++ - Référence procédures et fonctions - fflush
Langage de programmation - C++ - Référence procédures et fonctions - fopen
Langage de programmation - C++ - Référence procédures et fonctions - freopen
Langage de programmation - C - Référence procédures et fonctions - fclose
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 94.
Dernière mise à jour : Lundi, le 3 août 2015