Provided by: manpages-fr-dev_3.57d1p1-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,  la  glibc  le  gère  depuis  la
       version 2.5.

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.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

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