© Éditions Eyrolles
183
chapitre n° 10
Les fichiers
La fonction fopen est ce que l’on nomme une fonction d’ouverture de fichier. Elle possède
deux arguments :
●
Le nom du fichier concerné, fourni sous forme d’une chaîne de caractères ; ici, nous avons
prévu que ce nom ne dépassera pas 20 caractères (le chiffre 21 tenant compte du caractère
\0) ; notez qu’en général ce nom pourra comporter une information (chemin, répertoire...)
permettant de préciser l’endroit où se trouve le fichier.
●
Une indication, fournie elle aussi sous forme d’une chaîne, précisant ce que l’on souhaite
faire avec ce fichier. Ici, on trouve w (abréviation de write) qui permet de réaliser une
ouverture en écriture. Plus précisément, si le fichier cité n’existe pas, il sera créé par
fopen. S’il existe déjà, son ancien contenu deviendra inaccessible. Autrement dit, après
l’appel de cette fonction, on se retrouve dans tous les cas en présence d’un fichier vide.
Le remplissage du fichier est réalisé par la répétition de l’appel :
fwrite (&n, sizeof(int), 1, sortie) ;
La fonction fwrite possède quatre arguments précisant :
●
l’adresse d’un bloc d’informations (ici &n) ;
●
la taille d’un bloc, en octets : ici sizeof(int) ; notez l’emploi de l’opérateur sizeof
qui assure la portabilité du programme ;
●
le nombre de blocs de cette taille que l’on souhaite transférer dans le fichier (ici 1) ;
●
l’adresse de la structure décrivant le fichier (sortie).
Notez que, d’une manière générale, fwrite permet de transférer plusieurs blocs consécutifs
de même taille à partir d’une adresse donnée.
Enfin, la fonction fclose réalise ce que l’on nomme une fermeture de fichier. Elle force l’écriture
sur disque du tampon associé au fichier. En effet, chaque appel à fwrite provoque un entassement d’informations dans le tampon associé au fichier. Ce n’est que lorsque ce dernier est plein
qu’il est « vidé » sur disque. Dans ces conditions, on voit qu’après le dernier appel de fwrite
il est nécessaire de forcer le transfert des dernières informations accumulées dans le tampon.
On emploie souvent le terme flux (en anglais stream) pour désigner un pointeur sur une structure de type FILE. Ici, par exemple, sortie est un flux que la fonction fopen aura associé à un
certain fichier. D’une manière générale, par souci de simplification, lorsqu’aucune ambiguïté ne
sera possible, nous utiliserons souvent le mot fichier à la place de flux.
La fonction fopen fournit un pointeur nul en cas d’impossibilité d’ouverture du fichier. Ce sera
le cas, par exemple, si l’on cherche à ouvrir en lecture un fichier inexistant ou encore si l’on
cherche à créer un fichier sur une disquette saturée.
La fonction fwrite fournit le nombre de blocs effectivement écrits. Si cette valeur est inférieure
au nombre prévu, cela signifie qu’une erreur est survenue en cours d’écriture. Cela peut être,
par exemple, une disquette pleine, mais cela peut se produire également lorsque l’ouverture du
fichier s’est mal déroulée (et que l’on n’a pas pris soin d’examiner le code de retour de fopen).
Delannoy Livre.book Page 183 Mercredi, 6. mai 2009 4:26 16
Précédent

- 196/281

Suivant