Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       vmsplice - Raccorder des pages utilisateur à un tube

SYNOPSIS

       #define _GNU_SOURCE         /* Consultez feature_test_macros(7) */
       #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  système  vmsplice()  projette 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 définies dans <sys/uio.h> :

           struct iovec {
               void *iov_base;           /* Adresse de début */
               size_t iov_len;           /* Nombre d'octets  */
           };

       L'argument flags est constitué par un OU  binaire  entre  une  ou  plusieurs  des  valeurs
       suivantes :

       SPLICE_F_MOVE      Non utilisé pour vmsplice() ; consultez splice(2).

       SPLICE_F_NONBLOCK  Ne  pas  bloquer pendant les entrées-sorties ; consultez splice(2) pour
                          plus de détails.

       SPLICE_F_MORE      N'a pas  d'effet  pour  vmsplice()  actuellement,  mais  pourrait  être
                          implémenté un jour ; consultez splice(2).

       SPLICE_F_GIFT      Les  pages  utilisateur sont offertes au noyau. L'application ne pourra
                          plus jamais modifier cette mémoire, sans quoi le cache de pages et  les
                          données  stockées  sur  disque  pourraient être différentes. Offrir des
                          pages au noyau signifie qu'un futur  appel  à  splice(2)  SPLICE_F_MOVE
                          peut  effectivement  déplacer  les  pages ;  si  ce paramètre n'est pas
                          spécifié, un futur appel à  splice(2)  SPLICE_F_MOVE  doit  copier  les
                          pages.  Les données doivent par ailleurs être correctement alignées sur
                          des frontières de pages, que ce soit en mémoire ou en taille.

VALEUR RENVOYÉE

       S'il réussit, vmsplice() renvoie le nombre  d'octets  transférés  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 à un tube.

       EINVAL nr_segs  est  nul  ou  supérieur à IOV_MAX, ou bien la mémoire n'est pas alignée si
              SPLICE_F_GIFT est spécifié.

       ENOMEM Plus de mémoire disponible.

VERSIONS

       L'appel système vmsplice() est apparu dans Linux 2.6.17.

CONFORMITÉ

       Cet appel système est spécifique à Linux.

NOTES

       vmsplice() suit les conventions des autres fonctions vectorielles de type read/write quant
       aux  limites  sur le nombre de segments qui peuvent être passés. Cette limite est IOV_MAX,
       défini dans <limits.h>. Lorsque cette page a été écrite, cette limite était 1024.

VOIR AUSSI

       splice(2), tee(2)

COLOPHON

       Cette page fait partie de la publication 3.32 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <URL:http://po4a.alioth.debian.org/>  par  l'équipe  de  traduction francophone au sein du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>   ou   par   un  rapport  de  bogue  sur  le  paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».