Next: write Up: Appels système du Système Previous: creat

read

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:

  1. Vérification du descripteur tex2html_wrap_inline5855 accès aux tables système.
  2. Droits (mode adéquat)
  3. 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.
  4. Le système recopie les données du buffer cache vers le tampon de l'utilisateur.
  5. Le curseur dans le fichier est remit à jour dans l'entrée de la table des fichiers ouverts.
  6. Le système renvoie le nombre de caractères effectivement lus.


Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci