Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
vmsplice - Raccorder des pages utilisateur a un tube
SYNOPSIS
#define _GNU_SOURCE
#include <fcntl.h>
#include <sys/uio.h>
ssize_t vmsplice(int fd, const struct iovec *iov,
unsigned long nr_segs, unsigned int flags);
DESCRIPTION
L'appel systeme vmsplice() projette les nr_segs segments de memoire
utilisateur decrits par iov dans un tube. Le descripteur de fichier fd
doit faire reference a un tube.
Le pointeur iov pointe vers un tableau de structures iovec definies
dans <sys/uio.h> :
struct iovec {
void *iov_base; /* Adresse de debut */
size_t iov_len; /* Nombre d'octets */
};
L'argument flags est constitue par un OU binaire entre une ou plusieurs
des valeurs suivantes :
SPLICE_F_MOVE Non utilise pour vmsplice() ; consultez splice(2).
SPLICE_F_NONBLOCK Ne pas bloquer pendant les entrees-sorties ;
consultez splice(2) pour plus de details.
SPLICE_F_MORE N'a pas d'effet pour vmsplice() actuellement, mais
pourrait etre implemente un jour ; consultez
splice(2).
SPLICE_F_GIFT Les pages utilisateur sont offertes au noyau.
L'application ne pourra plus jamais modifier cette
memoire, sans quoi le cache de pages et les donnees
stockees sur disque pourraient etre differentes.
Offrir des pages au noyau signifie qu'un futur appel
a splice(2) SPLICE_F_MOVE peut effectivement
deplacer les pages ; si ce parametre n'est pas
specifie, un futur appel a splice(2) SPLICE_F_MOVE
doit copier les pages. Les donnees doivent par
ailleurs etre correctement alignees sur des
frontieres de pages, que ce soit en memoire ou en
taille.
VALEUR RENVOY'EE
S'il reussit, vmsplice() renvoie le nombre d'octets transferes dans le
tube. En cas d'erreur, vmsplice() renvoie -1 et errno contient le code
d'erreur.
ERREURS
EBADF fd est invalide ou ne correspond pas a un tube.
EINVAL nr_segs est nul ou superieur a IOV_MAX, ou bien la memoire n'est
pas alignee si SPLICE_F_GIFT est specifie.
ENOMEM Plus de memoire disponible.
VERSIONS
L'appel systeme vmsplice() est apparu dans Linux 2.6.17.
CONFORMIT'E
Cet appel systeme est specifique a Linux.
NOTES
vmsplice() suit les conventions des autres fonctions vectorielles de
type read/write quant aux limites sur le nombre de segments qui peuvent
etre passes. Cette limite est IOV_MAX, defini dans <limits.h>. Lorsque
cette page a ete ecrite, cette limite etait 1024.
VOIR AUSSI
splice(2), tee(2), feature_test_macros(7)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Julien Cristau et l'equipe francophone de traduction de
Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.