Rechercher une page de manuel
vmsplice
Langue: fr
Version: 28 avril 2006 (mandriva - 01/05/08)
Section: 2 (Appels système)
NOM
vmsplice - Copier des pages utilisateur dans un tubeSYNOPSIS
#define _GNU_SOURCE #include <fcntl.h> #include <sys/uio.h> long vmsplice(int fd, const struct iovec *iov, unsigned long nr_segs, unsigned int flags);
DESCRIPTION
L'appel système vmsplice() projète les nr_segs segments de mémoire utilisateur décrits par iov dans un tube. Le descripteur de fichier fd doit faire référence à un tube.Le pointeur iov pointe vers un tableau de structures iovec telles qu'elles sont définies dans <sys/uio.h> :
struct iovec { void *iov_base; /* Adresse de départ */ size_t iov_len; /* Nombre d'octets */ };
L'argument flags est un masque de bits constitué par un OU binaire entre zéro ou plusieurs des valeurs suivantes :
- SPLICE_F_MOVE
- Inutilisé pour vmsplice() ; voir splice(2).
- SPLICE_F_NONBLOCK
- Ne pas bloquer sur les E/S ; voir splice(2) pour plus de détails.
- SPLICE_F_MORE
- Actuellement sans effet pour vmsplice(), mais peut être implémenté dans le futur ; voir splice(2).
- SPLICE_F_GIFT
- Les pages utilisateur sont données au noyau. L'application ne pourra plus les modifier sinon le cache de pages pourrait être différent des données du disque. Donner ces pages au noyau signifie qu'un appel ultérieur à splice(2) SPLICE_F_MOVE permet de déplacer les pages ; si cet attribut n'est pas spécifié, un appel ultérieur à splice(2) SPLICE_F_MOVE doit copier les pages. De plus, les données doivent être correctement alignées sur des frontières de pages, que ce soit en mémoire ou en taille.
VALEUR RENVOYÉE
En cas de réussite, vmsplice() renvoie le nombre d'octets transférés vers le tube. En cas d'erreur, vmsplice() renvoie -1 et errno est positionnée en conséquence pour indiquer l'erreur.ERREURS
- EBADF
- fd n'est pas valide ou ne fait pas référence à un tube.
- EINVAL
- nr_segs est nul ou plus grand que IOV_MAX ; ou la mémoire n'est pas alignée si SPLICE_F_GIFT est positionné.
- ENOMEM
- Pas assez de mémoire.
VERSIONS
L'appel système vmsplice(2) est apparu pour la première fois dans Linux 2.6.17.CONFORMITÉ
Cet appel système est spécifique à Linux.NOTES
vmsplice() suit les autres fonctions vectorisées de type lecture/écriture concernant les limitations sur le nombre de segments pouvant être passés. Cette limite est IOV_MAX telle que définie dans <limits.h>. Au moment où cette page a été rédigée, cette limite était 1024.VOIR AUSSI
splice(2), tee(2), feature_test_macros(7)TRADUCTION
Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 24 octobre 2007 et révisée le 26 novembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 vmsplice ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre