READ(2)            Manuel du programmeur Linux            READ(2)


NOM
       read - Lire le contenu d'un fichier.

SYNOPSIS
       #include <sys/types.h>
       #include <unistd.h>

       ssize_t read(int fd, void *buf, size_t count);

DESCRIPTION
       read  lit  jusqu'à  count  octets depuis le descripteur de
       fichier fd dans le buffer pointé par buf.

       Si count vaut zéro, read renvoie zéro et n'a pas  d'autres
       effets.

       Si  count  est  supérieur  à  SSIZE_MAX,  le  résultat est
       indéfini.


VALEUR RENVOYÉE
       read renvoie -1 s'il échoue, auquel cas errno contient  le
       code  d'erreur,  et  la position de la tête de lecture est
       indéfinie.

       Sinon, read renvoie le nombre d'octets lus (0  en  fin  de
       fichier),  et  avance  la tête de lecture de ce nombre. Le
       fait que le nombre renvoyé soit plus petit que  le  nombre
       demandé  n'est pas une erreur. Ceci se produit à la fin du
       fichier, ou si on lit depuis un tube ou  un  terminal,  ou
       encore si read a été interrompu par un signal.


ERREURS
       EINTR   read  a été interrompu par un signal avant d'avoir
               eu le temps de lire quoi que ce soit.

       EAGAIN  On utilise une  lecture  non  bloquante  (attribut
               O_NONBLOCK  du  descripteur  de fichier) et aucune
               donnée n'était disponible.

       EIO     Erreur d'entrée/sortie. Ceci arrive si un  proces­
               sus est dans un groupe en arrière-plan et tente de
               lire depuis le terminal. Il reçoit un signal SIGT­
               TIN mais il l'ignore ou le bloque. Ceci se produit
               également si une erreur d'entrée/sortie bas-niveau
               s'est  produite  pendant la lecture d'un disque ou
               d'une bande.

       EISDIR  fd est un répertoire.

       EBADF   fd n'est pas un descripteur valide, ou  n'est  pas
               ouvert en lecture.




Linux                    19 Juillet 1997                        1





READ(2)            Manuel du programmeur Linux            READ(2)


       EINVAL  fd  corrrespond  à  un  objet ne permettant pas la
               lecture.

       EFAULT  buf  pointe  en  dehors  de  l'espace  d'adressage
               accessible.

       D'autres  erreurs  peuvent  se  produire,  suivant le type
       d'objet associé à fd.  POSIX permet à un  read  interrompu
       par un signal de renvoyer soit le nombre d'octets lus à ce
       point, soit -1, et de placer errno à EINTR.

CONFORMITÉ
       SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3

RESTRICTIONS
       Sur un système de fichiers  NFS,  la  lecture  de  petites
       quantités  de  données  ne  mettra  à jour l'horodatage du
       fichier que lors de la  première  lecture.   Les  lectures
       suivantes ne modifieront pas cette heure. En effet la plu­
       part, si ce n'est tous  les  clients  NFS  disposent  d'un
       cache  des  attributs  de  fichiers et n'effectuent pas la
       mise à jour du champ 'atime' du côté serveur.

       La véritable sémantique UNIX peut etre obtenue en désacti­
       vant le cache des attributs du côté client, mais générale­
       ment ceci augmente sensiblement la charge du  serveur,  et
       dégrade ses performances.

VOIR AUSSI
       readdir(2),   write(2),   write(2),   fcntl(2),  close(2),
       lseek(2), select(2), readlink(2), ioctl(2), fread(3).


TRADUCTION
       Christophe Blaess, 1997.






















Linux                    19 Juillet 1997                        2