pread

PREAD(2)                  Manuel du programmeur Linux                 PREAD(2)



NOM
       pread, pwrite - Lire ou écrire à une position donnée d'un
       descripteur de fichier

SYNOPSIS
       #include <unistd.h>

       ssize_t pread(int fd, void *buf, size_t count, off_t offset);

       ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);

   Exigences de macros de test de fonctionnalités pour la glibc (consultez
   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, Ã  la
       position offset (mesurée depuis le début du fichier), et les place
       dans la zone commençant à l'adresse buf. La position de la tête de
       lecture du fichier n'est pas modifiée par cet appel système.

       pwrite() lit au maximum count octets dans la zone mémoire pointée par
       buf, et les écrit à la position offset (mesurée depuis le début du
       fichier) dans le descripteur fd. La position de la tête d'écriture du
       fichier n'est pas modifiée.

       Dans les deux cas, le fichier décrit par fd doit permettre le
       positionnement.

VALEUR RENVOYÃE
       S'ils réussissent, ces appels système renvoient le nombre d'octets
       lus ou écrits (0 indiquant que rien n'a été écrit dans le cas de
       pwrite(), ou la fin du fichier dans le cas de pread()). En cas
       d'échec, ils renvoient -1, et remplissent errno en conséquence.

ERREURS
       pread() peut échouer et fournir dans errno n'importe quelle erreur
       indiquée par read(2) ou lseek(2). pwrite() peut échouer et fournir
       dans errno n'importe quelle erreur indiquée par write(2) ou lseek(2).

VERSIONS
       Les appels système pread() et pwrite() ont été ajoutés dans le
       noyau Linux 2.1.60. Les points d'entrée dans la table des appels i386
       furent instaurés dans la version 2.1.69. Le support par la
       bibliothèque C, y compris l'émulation utilisant lseek(2) sur les
       anciens noyaux sans ces appels système, fut ajouté dans la glibc 2.1.

CONFORMITÃ
       POSIX.1-2001.

NOTES
       Les appels système pread() et pwrite() sont particulièrement utiles
       dans les applications multithreadées . Ils permettent à plusieurs
       threads d'effectuer des entrées et sorties sur un même descripteur de
       fichier sans être affecté des déplacements au sein du fichier dans
       les autres threads.

       Sous Linux, les appels système sous-jacents ont été renommés dans
       le noyau 2.6 : pread()  devint pread64(), et pwrite()  devint
       pwrite64(). Les numéros d'appel système demeurèrent inchangés. Les
       fonctions pread() et pwrite() de la glibc qui les encapsulent gèrent
       ce changement de manière transparente.

       Sur certaines architectures 32 bits, la signature d'appel de ces appels
       système est différente, pour les raisons expliquées dans syscall(2).

BOGUES
       POSIX impose qu'ouvrir un fichier avec l'attribut O_APPEND ne devrait
       pas affecter l'emplacement où pwrite() écrit les données. Cependant
       avec Linux, si un fichier est ouvert avec O_APPEND, pwrite() écrit les
       données à la fin du fichier, quelle que soit la valeur d'offset.

VOIR AUSSI
       lseek(2), read(2), readv(2), write(2)

COLOPHON
       Cette page fait partie de la publication 3.70 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 Ã
       <perkamon-fr@traduc.org>.

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



Linux                            21 juin 2013                         PREAD(2)