Man page - vmsplice(2)

Packages contains this manual

Available languages:

en fr pl ja ru ro

Manual

vmsplice

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
VOIR AUSSI
TRADUCTION

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 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 est dĂ©fini pour prĂ©ciser l’erreur.

ERREURS

EAGAIN

SPLICE_F_NONBLOCK Ă©tait indiquĂ© dans flags , et l’opĂ©ration pourrait 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.

STANDARDS

Linux.

HISTORIQUE

Linux 2.6.17, glibc 2.5.

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> . Actuellement, 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 Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.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.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.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 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 .