Précédent Remonter Suivant

2  La bibliothèque

Les fonctions de la bibliothèque manipulent des flots, nommés stream implémentés par des FILE*.

Le tampon associé à un flot est dans l'espace usager : les transferts mémoire sont plus rapides ; il n'est pas partagé entre les processus ; il n'y aura pas de vidages intempestifs obligeant à le relire depuis le disque ; sa taille est choisie pour correspondre aux caractéristiques du périphérique. Les entrées/sorties de bas niveau se feront bien par taille et sur des frontières multiples de la taille des tampons systèmes1.

Détaillons quelques fonctions de la bibliothèque :
FILE *fopen (char *path, char *type) ;
L'ouverture d'un fichier est réalisé par un appel à fopen(). path est le nom du fichier dans le système de fichier ; type indique le mode d'ouverture ; par exemple "w" indique une ouverture en écriture et "r" une ouverture en lecture.

int fclose (FILE *stream) ;
La fonction fclose() vide le tampon usager associé au flot stream si celui-ci est ouvert en écriture et ferme le fichier correspondant.

int fflush (FILE *stream) ;
La fonction fflush() vide le tampon usager associé au flot stream si celui-ci est ouvert en écriture.

int fread (void *ptr, int ptrsize, int nitems, FILE * stream) ;
Cette fonction lit nitems articles de taille ptrsize dans le tampon associé au flot stream et le range à partir de ptr ; fread() retourne le nombre d'articles effectivement lus.

int fwrite (void *ptr, int ptrsize, int nitems, FILE * stream) ;
Cette fonction écrit nitems articles de taille ptrsize à partir du pointeur ptr dans le tampon associé au flot stream ; fwrite() retourne le nombre d'articles effectivement écrits.

fputc (char c, FILE * stream) ;
La fonction fputc() écrit le caractère c dans le fichier désigné.

int fgetc (FILE * stream) ;
La fonction fgetc() lit un caractère dans le fichier désigné et le retourne ; en fin de fichier, fgetc() retourne la constante entière EOF.

int ungetc (char c, FILE *stream) ;
Il est possible d'annuler la dernière lecture d'un caractère par un appel ungetc() qui remet le caractère c dans le flot stream ouvert en lecture. Ce caractère sera celui retourné par le prochain appel à fgetc(). Un appel à ungetc() n'est valide que si effectivement un caractère a déjà été lu sur le flot stream. De plus, il est impossible de remettre EOF. ungetc() retourne le caractère remis, EOF en cas d'impossibilité.

Précédent Remonter Suivant