pread(2) System Calls Manual pread(2) NOM pread, pwrite - Lire ou ecrire a une position donnee d'un descripteur de fichier BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include ssize_t pread(int fd, void buf[.count], size_t count, off_t offset); ssize_t pwrite(int fd, const void buf[.count], size_t count, off_t offset); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : pread(), pwrite() : _XOPEN_SOURCE >= 500 || /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE >= 200809L DESCRIPTION pread() lit au maximum count octets depuis le descripteur fd, a la position offset (mesuree depuis le debut du fichier), et les place dans la zone commencant a l'adresse buf. La position de la tete de lecture du fichier n'est pas modifiee par cet appel systeme. pwrite() lit au maximum count octets dans la zone memoire pointee par buf, et les ecrit a la position offset (mesuree depuis le debut du fichier) dans le descripteur fd. La position de la tete d'ecriture du fichier n'est pas modifiee. Dans les deux cas, le fichier decrit par fd doit permettre le positionnement. VALEUR RENVOYEE En cas de succes, pread() renvoie le nombre d'octets lus (un code de zero indique la fin du fichier) et pwrite() renvoie le nombre d'octets ecrits. Remarquez que le fait de transferer moins d'octets que deux demandes (voir read(2) et write(2)) ne constitue pas une erreur empechant le succes de l'appel. En cas d'erreur, la valeur de retour est -1 et errno est definie pour preciser l'erreur. ERREURS pread() peut echouer et fournir dans errno n'importe quelle erreur indiquee par read(2) ou lseek(2). pwrite() peut echouer et fournir dans errno n'importe quelle erreur indiquee par write(2) ou lseek(2). STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001. Ajoutes dans Linux 2.1.60. Les points d'entree dans la table des appels i386 furent instaures dans Linux 2.1.69. Le support par la bibliotheque C, y compris l'emulation utilisant lseek(2) sur les anciens noyaux sans ces appels systeme, fut ajoute dans la glibc 2.1. Differences entre bibliotheque C et noyau Sous Linux, les appels systeme sous-jacents ont ete renommes dans Linux 2.6 : pread() est devenu pread64() et pwrite() est devenu pwrite64(). Les numeros d'appel systeme demeurerent inchanges. Les fonctions pread() et pwrite() de la glibc qui les encapsulent gerent ce changement de maniere transparente. Sur certaines architectures 32 bits, la signature d'appel de ces appels systeme est differente, pour les raisons expliquees dans syscall(2). NOTES Les appels systeme pread() et pwrite() sont particulierement utiles dans les applications multithreadees . Ils permettent a plusieurs threads d'effectuer des entrees et sorties sur un meme descripteur de fichier sans etre affecte des deplacements au sein du fichier dans les autres threads. BOGUES POSIX impose qu'ouvrir un fichier avec l'attribut O_APPEND ne devrait pas affecter l'emplacement ou pwrite() ecrit les donnees. Cependant avec Linux, si un fichier est ouvert avec O_APPEND, pwrite() ecrit les donnees a la fin du fichier, quelle que soit la valeur d'offset. VOIR AUSSI lseek(2), read(2), readv(2), write(2) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 pread(2)