READV
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
BOGUES
VOIR AUSSI
TRADUCTION
NOM
readv, writev - Lire ou écrire dans plusieurs buffers.
SYNOPSIS
#include <sys/uio.h>
int readv(int fd, const struct iovec * vecteur, int nb);
int writev(int fd, const struct iovec * vecteur, int nb);
DESCRIPTION
La fonction
readv()
lit
nb
blocs depuis le descripteur de fichier
fd
dans les multiples buffers décrits par le
vecteur.
La fonction
writev()
écrit au plus
nb
blocs décrits par le
vecteur
dans le fichier associé au descripteur
fd.
Le
vecteur
pointe sur une
struct iovec
définie dans
<sys/uio.h>
ainsi :
struct iovec {
void *iov_base; /* Adresse de début */
size_t iov_len; /* Nombre d'octets */
};
Les buffers sont traités dans l'ordre indiqué.
La fonction
readv()
travaille comme
read(2)
sauf que plusieurs buffers sont remplis.
La fonction
writev()
travaille comme
write(2)
sauf que plusieurs buffers sont écrits.
VALEUR RENVOYÉE
S'ils réussissent
readv
renvoie le nombre d'octets lus et
writev
renvoie le nombre d'octets écrits.
En cas d'échec -1 est renvoyé, et
errno
contient le code d'erreur.
ERREURS
Les erreurs indiquées pour
read(2)
et
write(2à
sont susceptibles de se produire.
De plus il peut survenir :
- EINVAL
-
La somme des
iov_len
valeurs déborde du type
ssize_t,
ou le nombre
nb
de vecteur est nul ou supérieur à
MAX_IOVEC.
CONFORMITÉ
BSD 4.4 (les fonctions
readv
et
writev
sont apparues dans BSD 4.2), Unix98. La libc5 de Linux utilisait
les types
size_t
pour le paramètre
count
et
int
en retour de ces fonctions.
BOGUES
Il est déconseillé de mélanger les appels
readv()
ou
writev()
qui agissent sur les descripteurs avec les fonctions de la bibliothèque
stdio ; les résultats sont indéfinis et probablement différents de ce que
l'on attend
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|