Provided by: manpages-fr-dev_3.65d1p1-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.65 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> ».

Linux                                              4 mai 2012                                        VMSPLICE(2)