pread

Autres langues

Langue: fr

Version: 18 juillet 2003 (openSuse - 09/10/07)

Section: 2 (Appels système)

NOM

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

SYNOPSIS

#define _XOPEN_SOURCE 500

#include <unistd.h>

ssize_t pread(int fd, void *buf, size_t nombre, off_t position);

ssize_t pwrite(int fd, const void *buf, size_t nombre, off_t position);

DESCRIPTION

pread() lit au maximum le nombre indiqué d'octets depuis le descripteur fd, à la position 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 le nombre indiqué d'octets dans la zone mémoire pointée par buf, et les écrit à la position (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èmes 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 la variable globale 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).

CONFORMITÉ

Unix98

HISTORIQUE

Les appels systèmes 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 sur les anciens noyaux sans ces appels systèmes, fut ajouté dans la GlibC 2.1.

VOIR AUSSI

read(2), write(2), lseek(2)

TRADUCTION

Christophe Blaess, 1996-2003.