Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       read - Lire depuis un descripteur de fichier

SYNOPSIS

       #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 tampon pointé
       par buf.

       Sur les fichiers permettant le positionnement, l'opération de lecture a lieu à la position
       actuelle  dans  le  fichier  et  elle  est déplacée du nombre d'octets lus. Si la position
       actuelle dans le fichier est à la fin du fichier ou après, aucun octet n'est lu et  read()
       renvoie zéro.

       Si  count  vaut zéro, read() pourrait détecter les erreurs décrites ci-dessous. En absence
       d'erreur, ou si read() ne vérifie pas les erreurs, un read() avec un count  de  0  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

       EAGAIN Le descripteur de fichier fd fait référence à un fichier autre qu'une socket  et  a
              été marqué comme non bloquant (O_NONBLOCK), et la lecture devrait bloquer.

       EAGAIN ou EWOULDBLOCK
              Le  descripteur  de fichier fd fait référence à un fichier autre qu'une socket et a
              été marqué  comme  non  bloquant  (O_NONBLOCK),  et  la  lecture  devrait  bloquer.
              POSIX.1-2001 permet de renvoyer l'une ou l'autre des erreurs dans ce cas et n'exige
              pas que ces constantes aient la même valeur. Une application portable devrait  donc
              tester les deux possibilités.

       EBADF  fd n'est pas un descripteur de fichier valable ou n'est pas ouvert en lecture.

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

       EINTR  read() a été interrompu par un signal avant d'avoir eu le temps de lire quoi que ce
              soit ; consultez signal(7).

       EINVAL Le descripteur fd correspond à un objet sur lequel il est impossible  de  lire.  Ou
              bien  le  fichier  a  été  ouvert avec l'attribut O_DIRECT, et l'adresse de buf, la
              valeur de count ou la position actuelle de la tête de lecture ne sont pas  alignées
              correctement.

       EINVAL fd  a  été créé par un appel à timerfd_create(2) et une mauvaise taille de tampon a
              été donnée à read() ; consultez timerfd_create(2) pour plus d'informations.

       EIO    Erreur d'entrée-sortie.  Ceci  arrive  si  un  processus  est  dans  un  groupe  en
              arrière-plan et tente de lire depuis le terminal (tty). Il reçoit un signal SIGTTIN
              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.

       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, BSD 4.3, POSIX.1-2001.

NOTES

       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  plupart,  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
       « st_atime »  du  côté  serveur.  La  véritable  sémantique  UNIX  peut  être  obtenue  en
       désactivant  le  cache  des  attributs  du  côté  client,  mais généralement ceci augmente
       sensiblement la charge du serveur, et dégrade ses performances.

VOIR AUSSI

       close(2),  fcntl(2),  ioctl(2),  lseek(2),  open(2),  pread(2),  readdir(2),  readlink(2),
       readv(2), select(2), write(2), fread(3)

COLOPHON

       Cette  page  fait partie de la publication 3.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».