Provided by:
manpages-fr-dev_3.32d0.2p4-1_all 
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'a count octets depuis le descripteur de fichier fd
dans le tampon pointe par buf.
Si count vaut zero, read() renvoie zero et n'a pas d'autres effets. Si
count est superieur a SSIZE_MAX, le resultat est indefini.
VALEUR RENVOY'EE
read() renvoie -1 s'il echoue, auquel cas errno contient le code
d'erreur, et la position de la tete de lecture est indefinie. Sinon,
read renvoie le nombre d'octets lus (0 en fin de fichier), et avance la
tete de lecture de ce nombre. Le fait que le nombre renvoye soit plus
petit que le nombre demande n'est pas une erreur. Ceci se produit a la
fin du fichier, ou si on lit depuis un tube ou un terminal, ou encore
si read() a ete interrompu par un signal.
ERREURS
EAGAIN Le descripteur de fichier fd fait reference a un fichier autre
qu'une socket et a ete marque comme non bloquant (O_NONBLOCK),
et la lecture devrait bloquer.
EAGAIN ou EWOULDBLOCK
Le descripteur de fichier fd fait reference a un fichier autre
qu'une socket et a ete marque 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 meme valeur. Une application portable
devrait donc tester les deux possibilites.
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 ete interrompu par un signal avant d'avoir eu le temps
de lire quoi que ce soit ; consultez signal(7).
EINVAL Le descripteur fd correspond a un objet sur lequel il est
impossible de lire. Ou bien le fichier a ete ouvert avec le
drapeau O_DIRECT, et l'adresse de buf, la valeur de count ou la
position actuelle de la tete de lecture ne sont pas alignees
correctement.
EINVAL fd a ete cree par un appel a timerfd_create(2) et une mauvaise
taille de tampon a ete donnee a read() ; consultez
timerfd_create(2) pour plus d'informations.
EIO Erreur d'entree-sortie. Ceci arrive si un processus est dans un
groupe en arriere-plan et tente de lire depuis le terminal. Il
recoit un signal SIGTTIN mais il l'ignore ou le bloque. Ceci se
produit egalement si une erreur d'entree-sortie bas-niveau s'est
produite pendant la lecture d'un disque ou d'une bande.
EISDIR fd est un repertoire.
D'autres erreurs peuvent se produire, suivant le type d'objet associe a
fd. POSIX permet a un read() interrompu par un signal de renvoyer soit
le nombre d'octets lus a ce point, soit -1, et de placer errno a EINTR.
CONFORMIT'E
SVr4, BSD 4.3, POSIX.1-2001.
NOTES
Sur un systeme de fichiers NFS, la lecture de petites quantites de
donnees ne mettra a jour l'horodatage du fichier que lors de la
premiere 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 a jour
du champ << st_atime >> du cote serveur. La veritable semantique UNIX
peut etre obtenue en desactivant le cache des attributs du cote client,
mais generalement ceci augmente sensiblement la charge du serveur, et
degrade ses performances.
Beaucoup de disques et systemes de fichiers ont ete consideres comme
suffisamment rapides pour que l'implementation de O_NONBLOCK soit jugee
inutile. Ainsi O_NONBLOCK peut ne pas etre disponible sur les fichiers
et/ou les disques.
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.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
Linux 23 fevrier 2009 READ(2)