int nbcharlus = read(int d, char *tampon, int nbalire)
descripteur
entrée de la table des descripteurs correspondante au fichier dans lequel doit être effectuée la lecture (fourni par open).
nbalire
nombre de caractères à lire dans le fichier.
tampon
un tableau de caractères alloué par l'utilisateur.
Les caractères lus sont placés dans ce tampon.
nbcharlus
nombre de caractères effectivement lus, ou
-1 en cas d'échec de l'appel système, (droits, ...), la
fin de fichier est atteinte quand le nombre de caractères
lus est inférieur au nombre de caractères demandés.
Déroulement:
Vérification du descripteur accès aux tables système.
Droits (mode adéquat)
Grâce à l'inode le système obtient les adresses du (des) bloc(s) contenant les données à lire. Le système effectue la lecture de ces blocs.
Le système recopie les données du buffer cache vers le tampon de l'utilisateur.
Le curseur dans le fichier est remit à jour dans l'entrée de la table des fichiers ouverts.
Le système renvoie le nombre de caractères effectivement lus.