Provided by:
manpages-fr-dev_2.45.1-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’à count octets depuis le descripteur de fichier fd
dans le tampon 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.
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 On utilise une lecture non bloquante (attribut O_NONBLOCK du
descripteur de fichier) et aucune donnée n’était disponible.
EBADF fd n’est pas un descripteur de fichier valide 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.
EINVAL Le descripteur fd correspond à un objet sur lequel il est impos‐
sible de lire. Ou bien le fichier a été ouvert avec le drapeau
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 correcte‐
ment.
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. 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.
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 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.
Beaucoup de disques et systèmes de fichiers ont été considérés comme
suffisamment rapides pour que l’implémentation de O_NONBLOCK soit jugée
inutile. Ainsi cet attribut peut ne pas être disponible sur les
fichiers et/ou les disques.
close(2), fcntl(2), ioctl(2), lseek(2), open(2), pread(2), readdir(2),
readlink(2), readv(2), select(2), write(2), fread(3)
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
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> ».