dwww Home | Manual pages | Find package

vmsplice(2)                   System Calls Manual                  vmsplice(2)

NOM
       vmsplice  -  Raccorder des pages utilisateur à un tube ou à partir d'un
       tube

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #define _GNU_SOURCE         /* Consultez feature_test_macros(7) */
       #include <fcntl.h>

       ssize_t vmsplice(int fd, const struct iovec *iov,
                        size_t nr_segs, unsigned int flags);

DESCRIPTION
       Si fd est ouvert en écriture, l'appel système vmsplice()  projette  les
       nr_segs  segments  de mémoire utilisateur décrits par iov dans un tube.
       Si fd est ouvert en lecture, l'appel  système  vmsplice()  remplit  des
       segments  de mémoire utilisateur décrits par iov à partir d'un tube. Le
       descripteur de fichier fd doit faire référence à un tube.

       Le pointeur iov pointe vers un tableau de structures iovec comme décrit
       dans iovec(3type).

       L'argument  flags  est  un  masque  binaire 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_F_MOVE  de  splice(2)  peut  effectivement  déplacer  les
              pages ;  si  ce  paramètre  n'est pas spécifié, un futur appel à
              SPLICE_F_MOVE de splice(2) doit copier les  pages.  Les  données
              doivent  par  ailleurs  être correctement alignées sur des fron-
              tiè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 est défini pour
       préciser l'erreur.

ERREURS
       EAGAIN SPLICE_F_NONBLOCK était indiqué dans flags, et l'opération pour-
              rait bloquer.

       EBADF  fd n'est pas valable ou ne correspond pas à un tube.

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

       ENOMEM Plus assez de mémoire.

VERSIONS
       L'appel système vmsplice() est apparu dans Linux 2.6.17,  la  prise  en
       charge de la bibliothèque a été ajoutée dans la glibc 2.5.

STANDARDS
       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éfinie dans <limits.h>. Actuel-
       lement, cette limite est 1024.

       vmsplice() prend en charge réellement le raccord véritable uniquement à
       partir de la mémoire utilisateur vers un tube. En direction inverse, il
       copie vraiment seulement les données dans  l'espace  utilisateur.  Mais
       cela fait une interface agréable et symétrique qui permet de construire
       sur vmsplice() avec de l'espace pour  une  amélioration  ultérieure  de
       performance.

VOIR AUSSI
       splice(2), tee(2), pipe(7)

TRADUCTION
       La  traduction française de cette page de manuel a été créée par Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe  Gué-
       rard  <fevrier@tigreraye.org>,  Jean-Luc  Coulon (f5ibh) <jean-luc.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>  et  Jean-Pierre  Giraud
       <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la       GNU       General       Public        License        version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de  manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03   4 décembre 2022                    vmsplice(2)

Generated by dwww version 1.15 on Sat Jun 29 01:41:30 CEST 2024.