Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

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> >>.