.\" This manpage is Copyright (C) 1992 Drew Eckhardt; .\" and Copyright (C) 1993 Michael Haardt, Ian Jackson. .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified Sat Jul 24 00:06:00 1993 by Rik Faith .\" Modified Wed Jan 17 16:02:32 1996 by Michael Haardt .\" .\" Modified Thu Apr 11 19:26:35 1996 by Andries Brouwer .\" Modified Sun Jul 21 18:59:33 1996 by Andries Brouwer .\" Modified Fri Jan 31 16:47:33 1997 by Eric S. Raymond .\" Modified Sat Jul 12 20:45:39 1997 by Michael Haardt .\" .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH READ 2 "12 février 2013" Linux "Manuel du programmeur Linux" .SH NOM read \- Lire depuis un descripteur de fichier .SH SYNOPSIS .nf \fB#include \fP .sp \fBssize_t read(int \fP\fIfd\fP\fB, void *\fP\fIbuf\fP\fB, size_t \fP\fIcount\fP\fB);\fP .fi .SH DESCRIPTION \fBread\fP() lit jusqu'à \fIcount\fP octets depuis le descripteur de fichier \fIfd\fP dans le tampon pointé par \fIbuf\fP. 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 \fBread\fP() renvoie zéro. Si \fIcount\fP vaut zéro, \fBread\fP() \fIpourrait\fP détecter les erreurs décrites ci\-dessous. En absence d'erreur, ou si \fBread\fP() ne vérifie pas les erreurs, un \fBread\fP() avec un \fIcount\fP de 0 renvoie zéro et n'a pas d'autres effets. Si \fIcount\fP est supérieur à \fBSSIZE_MAX\fP, le résultat est indéfini. .SH "VALEUR RENVOYÉE" \fBread\fP() renvoie \-1 s'il échoue, auquel cas \fIerrno\fP contient le code d'erreur, et la position de la tête de lecture est indéfinie. Sinon, \fBread\fP 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 \fBread\fP() a été interrompu par un signal. .SH ERREURS .TP \fBEAGAIN\fP Le descripteur de fichier \fIfd\fP fait référence à un fichier autre qu'une socket et a été marqué comme non bloquant (\fBO_NONBLOCK\fP), et la lecture devrait bloquer. .TP \fBEAGAIN\fP ou \fBEWOULDBLOCK\fP .\" Actually EAGAIN on Linux Le descripteur de fichier \fIfd\fP fait référence à un fichier autre qu'une socket et a été marqué comme non bloquant (\fBO_NONBLOCK\fP), 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. .TP \fBEBADF\fP \fIfd\fP n'est pas un descripteur de fichier valable ou n'est pas ouvert en lecture. .TP \fBEFAULT\fP \fIbuf\fP pointe en dehors de l'espace d'adressage accessible. .TP \fBEINTR\fP \fBread\fP() a été interrompu par un signal avant d'avoir eu le temps de lire quoi que ce soit\ ; consultez \fBsignal\fP(7). .TP \fBEINVAL\fP Le descripteur \fIfd\fP correspond à un objet sur lequel il est impossible de lire. Ou bien le fichier a été ouvert avec l'attribut \fBO_DIRECT\fP, et l'adresse de \fIbuf\fP, la valeur de \fIcount\fP ou la position actuelle de la tête de lecture ne sont pas alignées correctement. .TP \fBEINVAL\fP \fIfd\fP a été créé par un appel à \fBtimerfd_create\fP(2) et une mauvaise taille de tampon a été donnée à \fBread\fP()\ ; consultez \fBtimerfd_create\fP(2) pour plus d'informations. .TP \fBEIO\fP 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 \fBSIGTTIN\fP 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. .TP \fBEISDIR\fP \fIfd\fP est un répertoire. .PP D'autres erreurs peuvent se produire, suivant le type d'objet associé à \fIfd\fP. POSIX permet à un \fBread\fP() interrompu par un signal de renvoyer soit le nombre d'octets lus à ce point, soit \-1, et de placer \fIerrno\fP à \fBEINTR\fP. .SH CONFORMITÉ SVr4, BSD\ 4.3, POSIX.1\-2001. .SH 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. .SH "VOIR AUSSI" \fBclose\fP(2), \fBfcntl\fP(2), \fBioctl\fP(2), \fBlseek\fP(2), \fBopen\fP(2), \fBpread\fP(2), \fBreaddir\fP(2), \fBreadlink\fP(2), \fBreadv\fP(2), \fBselect\fP(2), \fBwrite\fP(2), \fBfread\fP(3) .SH COLOPHON Cette page fait partie de la publication 3.65 du projet \fIman\-pages\fP 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/. .SH TRADUCTION Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a par l'équipe de traduction francophone au sein du projet perkamon . .PP Christophe Blaess (1996-2003), Alain Portal (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian\ (2006-2009). .PP Veuillez signaler toute erreur de traduction en écrivant à ou par un rapport de bogue sur le paquet \fBmanpages\-fr\fR. .PP Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande «\ \fBman\ \-L C\fR \fI
\fR\ \fI\fR\ ».