Sommaire

Lecture d’un fichier Fichier:lecture

Pour lire le contenu d’un fichier, on peut utiliser l’appel système read().

Syntaxe

#include <unistd.h> 
ssize_t read(int fd, void *buffer, size_t count);

Arguments

fd

Descripteur du fichier, ouvert en lecture ou en lecture/écriture

buffer

Adresse de la zone de stockage des octets lus

count

Nombre maximum d’octets à lire

Valeur retournée

-1

Erreur, code erreur positionné dans la variable errno

0

Fin de fichier

>0

Nombre d’octets effectivement lus

Description

L’appel système stocke à l’adresse fournie les octets lus dans le fichier associé au descripteur, à concurrence de count octets.

La lecture se fait à l’emplacement courant dans le fichier associé au descripteur. En effet, le noyau gère la position courante dans le fichier pour chaque descripteur, dans la table des descripteurs de fichiers. Il déplace automatiquement cette position après chaque lecture.

Une demande de lecture en fin de fichier retourne zéro octet.

Le nombre d’octets effectivement lus n’est pas forcément égal au nombre demandé, pour différentes raisons, par exemple :

La fin du fichier a été atteinte avant le nombre d’octets demandé.

Le fichier n’est pas un fichier disque et il est géré en mode ligne, chaque lecture s’arrête au premier caractère fin de ligne.

Attention, l’appel système ...