Linux |
CentOS 4.8 |
|
pread(2) |
pread, pwrite − Lire ou écrire à une position donnée d’un descripteur de fichier. |
#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); |
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. |
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. |
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). |
Unix98 |
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. |
read(2), write(2), lseek(2). |
Christophe Blaess, 1999. |
pread(2) |