Man page - pread(2)

Packages contains this manual

Available languages:

en fr es ja ru ro

Manual

pread

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
Différences entre bibliothÚque C et noyau
NOTES
BOGUES
VOIR AUSSI
TRADUCTION

NOM

pread, pwrite - Lire ou Ă©crire Ă  une position donnĂ©e d’un descripteur de fichier

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <unistd.h>

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 fonctionnalités 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 , Ă  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

En cas de succĂšs, pread () renvoie le nombre d’octets lus (un code de zĂ©ro indique la fin du fichier) et pwrite () renvoie le nombre d’octets Ă©crits.

Remarquez que le fait de transfĂ©rer moins d’octets que deux demandĂ©s (voir read (2) et write (2)) ne constitue pas une erreur empĂȘchant le succĂšs de l’appel.

En cas d’erreur, la valeur de retour est -1 et errno est dĂ©finie pour prĂ©ciser l’erreur.

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).

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001.

AjoutĂ©s dans Linux 2.1.60. Les points d’entrĂ©e dans la table des appels i386 furent instaurĂ©s dans Linux 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.

Différences entre bibliothÚque C et noyau

Sous Linux, les appels systĂšme sous-jacents ont Ă©tĂ© renommĂ©s dans Linux 2.6 : pread () est devenu pread64 () et pwrite () est devenu 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).

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.

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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .