FOPEN |
Ouvrir un fichier |
---|---|
Langage C | stdio.h |
Syntaxe
FILE *fopen(const char *nomfichier,const char *mode); |
Paramètres
Nom | Description | |
---|---|---|
nomfichier | Ce paramètre permet d'indiquer le nom du fichier | |
mode | Ce paramètre permet d'indiquer le mode d'ouverture combiné du fichier : | |
Valeur | Description | |
a | Cette valeur indique une création en ajoutant à la fin du fichier | |
b | Cette valeur indique une ouverture en mode binaire | |
a+ | Cette valeur indique une création en ajoutant à la fin du fichier existant | |
r | Cette valeur indique un mode d'accès en lecture | |
r+ | Cette valeur indique un mode d'accès en lecture d'un fichier existant | |
t | Cette valeur indique une ouverture en mode texte | |
w | Cette valeur indique un mode d'accès en écriture | |
w+ | Cette valeur indique un mode d'accès en écriture et écrase le fichier existant |
Description
Cette fonction effectue l'ouverture d'un fichier.
Algorithme
MODULE FOPEN(filename, mode) * Vérifier les paramètres d'entrée : SI filename est NULL ALORS RETOURNE NULL FIN SI SI `mode` est NULL ou n'est pas un mode valide ("r", "w", "a", "r+", "w+", "a+") ALORS RETOURNE NULL FIN SI Allouer une structure de fichier (File) en mémoire pour entreposer les informations du fichier SI l'allocation échoue ALORS RETOURNE NULL FIN SI * Essayer d'ouvrir le fichier : SI le mode est "r" (lecture) et que le fichier n'existe pas ALORS RETOURNE NULL FIN SI SI le mode est "w" (écriture) ALORS Créer un fichier vide ou écraser le fichier existant. FIN SI SI le mode est "a" (ajout) ALORS Ouvrir le fichier en écriture Placer le pointeur à la fin du fichier FIN SI SI le mode est en lecture et écriture (par exemple "r+") ALORS Ajuster l'ouverture en conséquence FIN SI SI l'ouverture du fichier échoue ALORS Libérer la structure allouée RETOURNE NULL FIN SI Initialiser les informations du fichier dans la structure (comme le mode, le pointeur de position de fichier,...). RETOURNE un pointeur vers la structure de fichier, qui pourra être utilisé pour d'autres opérations (lecture, écriture,...). |
Remarques
- Ouverture de fichiers en C : La fonction fopen est essentielle pour manipuler des fichiers en C. Elle ouvre un fichier et renvoie un pointeur de type FILE*, étant utilisé pour toutes les opérations ultérieures (lecture, écriture,...). Sans un appel réussi à fopen, il est impossible de manipuler le fichier avec les autres fonctions de la bibliothèque standard.
- Modes d'ouverture variés : fopen accepte différents modes d'ouverture, comme "r" pour la lecture, "w" pour l'écriture, "a" pour l'ajout, ainsi que des variantes binaires ("rb", "wb",...). Ces modes permettent de gérer le fichier selon les besoins spécifiques de l'application et de contrôler le comportement d'écriture, de création et de modification des fichiers.
- Gestion des erreurs de fichier : Si fopen échoue à ouvrir un fichier (par exemple, si le fichier n'existe pas ou si les permissions sont insuffisantes), elle retourne NULL. Il est donc important de vérifier si le pointeur de fichier n'est pas NULL avant d'effectuer d'autres opérations, afin d'éviter les erreurs de segmentation ou des plantages.
- Portabilité et modes binaires : Les modes binaires ("rb", "wb", "ab",...) sont importants pour garantir la portabilité entre différents systèmes d'exploitation. Certains systèmes traitent les fichiers texte et binaires différemment, et l'utilisation de modes binaires permet d'éviter les modifications de fin de ligne automatiques, rendant les fichiers compatibles entre plateformes.
- Interaction avec les tampons de fichiers : Lorsqu'un fichier est ouvert avec fopen, il est automatiquement associé à un tampon, optimisant les opérations d'entrée-sortie. Cependant, les écritures peuvent ne pas être immédiatement visibles dans le fichier jusqu'à ce que le tampon soit vidé (via fflush ou fclose), une considération importante pour les applications où l'intégrité des données est critique.
- Fermeture des fichiers : Tout fichier ouvert avec fopen doit être fermé à la fin de son utilisation avec fclose pour libérer les ressources du système. L'oubli de fermeture peut entraîner des fuites de ressources, surtout dans des applications longues ou qui ouvrent de nombreux fichiers, ce qui peut dégrader les performances.
- Gestion de fichiers inexistants et création de fichiers : En mode "w", si le fichier n'existe pas, fopen crée un nouveau fichier. En mode "r", en revanche, fopen échouera si le fichier n'existe pas. Cette distinction permet de gérer les cas où l'existence du fichier est cruciale (par exemple, en lecture seulement) ou non (lors de la création de nouveaux fichiers).
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
Voir également
Langage de programmation - C - Référence de procédures et fonctions - fclose
Langage de programmation - C - Référence de procédures et fonctions - fseek
Langage de programmation - C - Référence de procédures et fonctions - fread
Langage de programmation - C - Référence de procédures et fonctions - fwrite
Langage de programmation - C++ - Référence de procédures et fonctions - fopen
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 107.
Dernière mise à jour : Mardi, le 28 juillet 2015