Previous Next Up Index Contents

11.4.1. Ouvrir un fichier séquentiel

Ouvrir un fichier en langage algorithmique

      ouvrir <Nom> en écriture

ou bien

      ouvrir <Nom> en lecture

<Nom> est une chaîne de caractères constante ou une variable de type chaîne qui représente le nom du fichier sur le médium de stockage.

Ouvrir un fichier en C - fopen

Lors de l'ouverture d'un fichier avec fopen, le système s'occupe de la réservation de la mémoire tampon dans la mémoire centrale et génère les informations pour un nouvel élément du type FILE. L'adresse de ce bloc est retournée comme résultat si l'ouverture s'est déroulée avec succès. La commande fopen peut ouvrir des fichiers en écriture ou en lecture en dépendance de son deuxième paramètre ("r" ou "w") :

      <FP> = fopen ( <Nom> , "w" );

ou bien

      <FP> = fopen ( <Nom> , "r" );

* <Nom> est une chaîne de caractères constante ou une variable de type chaîne qui représente le nom du fichier sur le médium de stockage,

* le deuxième argument détermine le mode d'accès au fichier:



"w"

pour 'ouverture en écriture'
- write -



"r"
pour 'ouverture en lecture'
- read -

* <FP> est un pointeur du type FILE* qui sera relié au fichier sur le médium de stockage. Dans la suite du programme, il faut utiliser <FP> au lieu de <Nom> pour référencer le fichier.

* <FP> doit être déclaré comme:

	      FILE *FP;

Le résultat de fopen

Si le fichier a pu être ouvert avec succès, fopen fournit l'adresse d'un nouveau bloc du type FILE. En général, la valeur de cette adresse ne nous intéresse pas; elle est simplement affectée à un pointeur <FP> du type FILE* que nous utiliserons ensuite pour accéder au fichier.

A l'apparition d'une erreur lors de l'ouverture du fichier, fopen fournit la valeur numérique zéro qui est souvent utilisée dans une expression conditionnelle pour assurer que le traitement ne continue pas avec un fichier non ouvert (voir 11.4.3. Exemples).

Ouverture en écriture

Dans le cas de la création d'un nouveau fichier, le nom du fichier est ajouté au répertoire du médium de stockage et la tête de lecture/écriture est positionnée sur un espace libre du médium.

Si un fichier existant est ouvert en écriture, alors son contenu est perdu.

Si un fichier non existant est ouvert en écriture, alors il est créé automatiquement. Si la création du fichier est impossible alors fopen indique une erreur en retournant la valeur zéro.

Autres possibilités d'erreurs signalées par un résultat nul:

- chemin d'accès non valide,

- pas de disque/bande dans le lecteur,

- essai d'écrire sur un médium protégé contre l'écriture,

- . . .

Ouverture en lecture

Dans le cas de la lecture d'un fichier existant, le nom du fichier doit être retrouvé dans le répertoire du médium et la tête de lecture/écriture est placée sur le premier enregistrement de ce fichier.

Possibilités d'erreurs signalées par un résultat nul:

- essai d'ouvrir un fichier non existant,

- essai d'ouvrir un fichier sans autorisation d'accès,

- essai d'ouvrir un fichier protégé contre la lecture,

- . . .


Remarque avancée:
Si un fichier n'a pas pu être ouvert avec succès, (résultat NUL), un code d'erreur est placé dans la variable errno. Ce code désigne plus exactement la nature de l'erreur survenue. Les codes d'erreurs sont définis dans <errno.h>.


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber