Provided by: manpages-fr-dev_3.57d1p1-1_all bug

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.57 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     à
       <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> ».