FCLOSEALL |
Ferme tous les fichiers |
---|---|
Langage C | stdio.h |
Syntaxe
int fcloseall(void); |
Description
Cette fonction effectue la fermeture de tous les fichiers.
Algorithme
MODULE fcloseall() error_found ← false * Parcourir tous les fichiers ouverts dans la liste des fichiers BOUCLE POUR CHAQUE fichier dans open_file_list FAIRE * Tenter de fermer le fichier SI fclose(file) ≠ 0 ALORS error_found ← true * Enregistrer l'erreur si la fermeture échoue FIN SI FIN BOUCLE POUR CHAQUE * Si une erreur a été rencontrée, renvoyer une valeur d'erreur SI error_found ALORS RETOURNE code d'erreur différent de zéro SINON RETOURNE 0 * Retourner 0 si tous les fichiers ont été fermés correctement FIN SI |
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.
- Fermeture de tous les flux ouverts : La fonction fcloseall permet de fermer tous les flux de fichiers ouverts dans le programme. Cela inclut tous les flux associés aux fichiers ouverts par fopen, freopen, ou tout autre mécanisme de gestion de fichiers. Cette fonction simplifie la gestion des ressources en fermant systématiquement tous les fichiers ouverts à un moment donné.
- Libération des ressources système : Lorsque des fichiers sont ouverts en C, des ressources systèmes telles que des descripteurs de fichiers sont allouées. fcloseall libère ces ressources en fermant chaque fichier ouvert, ce qui est essentiel pour éviter des fuites de mémoire ou des épuisements de descripteurs de fichiers, surtout dans des programmes longs ou complexes.
- Comportement de retour : La fonction fcloseall retourne le nombre de flux ayant été fermés. Si tous les flux ont été fermés avec succès, elle renvoie un nombre positif. Si une erreur se produit lors de la fermeture de l'un des fichiers, elle renvoie une valeur négative. Cela permet à l'utilisateur de détecter si une fermeture a échoué.
- Utilisation dans des programmes complexes : fcloseall est particulièrement utile dans des programmes où plusieurs fichiers sont ouverts simultanément, notamment dans des applications nécessitant de lire ou d'écrire dans plusieurs fichiers à la fois. Elle permet de garantir que tous les fichiers sont fermés correctement avant que le programme ne termine son exécution.
- Non standard dans certaines bibliothèques : Bien que fcloseall soit disponible dans certaines bibliothèques C, elle n'est pas définie par la norme C (ISO C). Par conséquent, elle peut ne pas être disponible dans toutes les implémentations de compilateurs C. Il est donc important de vérifier la documentation de l'environnement de développement utilisé avant de compter sur cette fonction.
- Impact sur les flux utilisés par les bibliothèques standard : Si un programme utilise fcloseall et qu'il a ouvert des flux par défaut (comme stdin, stdout, ou stderr), la fermeture de ces flux peut entraîner des comportements inattendus. Par conséquent, il est essentiel de s'assurer que ces flux ne sont pas affectés par un appel à fcloseall, ou de les rouvrir après la fermeture des autres flux.
- Utilisation dans la gestion des erreurs : En cas d'erreur critique, comme une erreur de mémoire ou de gestion des fichiers, appeler fcloseall permet de s'assurer que toutes les ressources de fichiers sont libérées avant de quitter le programme. Cela peut aider à éviter des situations où des fichiers restent ouverts, ce qui pourrait interférer avec des processus ultérieurs ou entraîner des pertes de données.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
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 : Mardi, le 28 juillet 2015