Dans de nombreux langages de programmation, les opérations relatives
aux fichiers impliquent trois étapes: ouvrir, lire (et/ou
écrire), fermer. Il est possible d'utiliser la commande
fopen pour indiquer au système d'exploitation
que vous êtes prêt à commencer un travail sur un fichier. Le code
suivant ouvre un fichier et envoye son contenu à l'écran:
#include <stdlib.h>
#include <stdio.h> #include <string.h> int main (int argc, char *argv[]) { int c; FILE *f; f = fopen ("mytest.c", "r"); if (f == 0) { perror ("fopen"); return 1; } for (;;) { c = fgetc (f); if (c == -1) break; printf ("%c", c); } fclose (f) return 0; } |
Si la valeur retournée par fopen est zéro, on dit que fopen a échoué. La fonction perror affiche alors un message littéral comme, par exemple, No such file or directory. Il est essentiel de vérifier la valeur de retour de tous les appels de bibliothèques selon cette méthode. Ces vérifications peuvent constituer jusqu'à environ un tiers de vos programmes en C.
La commande fgetc extrait un caractère du fichier. Elle récupère les octets consécutifs contenus dans le fichier jusqu'à ce qu'elle atteigne la fin de ce dernier. Elle renvoye alors le nombre -1. La déclaration break impose de terminer immédiatement la boucle for, pour reprendre le flot d'exécution à la ligne 21. Les déclarations break peuvent éventuellement apparaître à l'intérieur des boucles while.
Vous aurez noté que la déclaration for est vide; ce qui implique qu'il n'y a pas de conditions de boucle et, par conséquent, que celle-ci est infinie. Ceci est tout-à-fait admis en C. En l'occurrence, on n'en sort que par le break.
D'autres fonctions associées aux fichiers sont fread, fwrite, fputc, fprintf et fseek. Consultez fwrite(3), fputc(3), fprintf(3) et fseek(3).