FCLOSEALL |
Ferme tous les fichiers |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int fcloseall(void); |
Description
Cette fonction effectue la fermeture de tous les fichiers.
Remarques
- ATTENTION ! Bien que supporté par les anciens compilateurs de langage C, cette fonction n'est plus supporté par les nouveaux compilateurs. Il faudra plutôt utiliser la fonction «_closeall()» si elle existe. Il faudra donc écrit «#define _fcloseall fcloseall» afin de rectifier la situation.
- Définition et utilité : La fonction fcloseall en C++ permet de fermer tous les fichiers ouverts dans un programme. Contrairement à fclose, fermant un fichier spécifique, fcloseall ferme tous les fichiers ouverts par le programme à un moment donné. Cela peut être utile dans des programmes où plusieurs fichiers sont ouverts et qu'il est nécessaire de les fermer tous en une seule opération.
- Fermeture de tous les fichiers : fcloseall est une manière rapide et efficace de fermer tous les fichiers ouverts par le programme sans avoir à appeler fclose pour chaque fichier individuellement. Cela est particulièrement utile dans les situations où un programme a ouvert plusieurs fichiers et où une fermeture complète est nécessaire à la fin de l'exécution ou lors de la gestion des erreurs.
- Effet sur les fichiers ouverts : L'appel à fcloseall ferme tous les fichiers ouverts, libère les ressources système associées et effectue les écritures nécessaires dans les fichiers (si applicable). Si certains fichiers étaient ouverts en mode écriture, les données tamponnées seront écrites avant la fermeture, évitant ainsi toute perte de données.
- Comportement en cas d'erreur : Si fcloseall rencontre un problème lors de la fermeture d'un fichier, elle renvoie une valeur non nulle, ce qui indique un échec. Contrairement à fclose, échouant sur un seul fichier et retourne une valeur spécifique pour cet échec, fcloseall tente de fermer tous les fichiers et peut signaler des erreurs d'une manière plus globale.
- Portabilité et disponibilité : Il est important de noter que fcloseall n'est pas disponible dans toutes les implémentations de C++. Par exemple, certaines versions de la bibliothèque standard de C++ (en particulier les anciennes) ne supportent pas fcloseall. Il est donc crucial de vérifier la portabilité de son utilisation avant d'intégrer cette fonction dans un programme si vous travaillez dans des environnements non standard.
- Utilisation dans les cas d'erreur : fcloseall peut être particulièrement utile dans les gestionnaires d'erreur pour fermer tous les fichiers ouverts avant qu'un programme ne se termine prématurément. Par exemple, dans un programme rencontrant une erreur critique après l'ouverture de plusieurs fichiers, un appel à fcloseall garantit que toutes les ressources sont correctement libérées avant la fin du programme.
- Impact sur les ressources et les fichiers : Lors de la fermeture de plusieurs fichiers en une seule fois avec fcloseall, il est important de noter que l'ordre dans lequel les fichiers sont fermés peut avoir un impact, bien que généralement, les ressources sont correctement gérées par le système. Dans des programmes dépendant de fichiers ouverts dans un ordre spécifique, il est recommandé de gérer explicitement chaque fermeture de fichier avec fclose.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
-
- int main()
- {
- FILE * Handle1 = fopen("monfichier1.txt", "r+");
- FILE * Handle2 = fopen("monfichier2.txt", "r+");
- FILE * Handle3 = fopen("monfichier3.txt", "r+");
- FILE * Handle4 = fopen("monfichier4.txt", "r+");
- /* Traitement ... */
- fcloseall();
- return 0;
- }
Voir également
Langage de programmation - C++ - Référence procédures et fonctions - fclose
Langage de programmation - C++ - Référence procédures et fonctions - fopen
Langage de programmation - C - Référence procédures et fonctions - fcloseall
Langage de programmation - MinGW pour C ou C++ - Référence procédures et fonctions - _fcloseall
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