Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       vmsplice - îmbină paginile de utilizator la/de la o conductă

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #define _GNU_SOURCE         /* Consultați feature_test_macros(7) */
       #include <fcntl.h>

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

DESCRIERE

       Dacă  fd  este  deschis  pentru  scriere,  apelul de sistem vmsplice() cartografiază nr_segs intervale de
       memorie utilizator descrise de iov într-o conductă. Dacă fd este deschis pentru citire, apelul de  sistem
       vmsplice()  completează  nr_segs  intervale  de  memorie  utilizator  descrise  de  iov dintr-o conductă.
       Descriptorul de fișier fd trebuie să se refere la o conductă.

       Indicatorul iov indică o matrice de structuri iovec, așa cum este descris în iovec(3type).

       Argumentul flags este o mască de biți care se compune prin combinarea prin OR a zero sau mai multe dintre
       următoarele valori:

       SPLICE_F_MOVE
              Unused for vmsplice(); see splice(2).

       SPLICE_F_NONBLOCK
              Nu blochează operațiile de In/Ieș; a se vedea splice(2) pentru mai multe detalii.

       SPLICE_F_MORE
              În prezent nu are niciun efect pentru vmsplice(), dar poate fi implementat în viitor; a  se  vedea
              splice(2).

       SPLICE_F_GIFT
              Paginile  de  utilizator sunt un „cadou” pentru nucleu. Aplicația nu trebuie să modifice niciodată
              această memorie, în caz contrar, memoria cache a paginilor și datele de pe disc pot  fi  diferite.
              Donarea  paginilor  către  nucleu  înseamnă  că  un splice(2) SPLICE_F_MOVE ulterior poate muta cu
              succes paginile; dacă acest indicator  nu  este  specificat,  atunci  un  splice(2)  SPLICE_F_MOVE
              ulterior  trebuie  să  copieze  paginile.  Datele  trebuie, de asemenea, să fie aliniate corect pe
              pagini, atât în memorie, cât și în lungime.

VALOAREA RETURNATĂ

       Upon successful completion, vmsplice()  returns the number of bytes transferred to the pipe.   On  error,
       vmsplice()  returns -1 and errno is set to indicate the error.

ERORI-IEȘIRE

       EAGAIN SPLICE_F_NONBLOCK a fost specificat în flags, iar operația s-ar bloca.

       EBADF  fd fie nu este valid, fie nu se referă la o conductă.

       EINVAL nr_segs   este  mai  mare  decât  IOV_MAX;  sau  memoria  nu  este  aliniată  dacă  este  stabilit
              SPLICE_F_GIFT.

       ENOMEM Memorie insuficientă.

STANDARDE

       Linux.

ISTORIC

       Linux 2.6.17, glibc 2.5.

NOTE

       vmsplice() urmează celelalte funcții de tip citire/scriere vectorizată în  ceea  ce  privește  limitările
       privind  numărul de segmente transmise.  Această limită este IOV_MAX așa cum este definită în <limits.h>.
       În prezent, această limită este de 1024.

       vmsplice() acceptă cu adevărat o îmbinare adevărată numai din memoria utilizatorului către o conductă. În
       direcția opusă, de fapt, copiază doar datele în spațiul utilizatorului. Dar acest lucru face ca interfața
       să fie plăcută și simetrică și permite oamenilor să construiască pe  baza  vmsplice()  cu  spațiu  pentru
       îmbunătățirea viitoare a performanțelor.

CONSULTAȚI ȘI

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

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  NICIO
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                        vmsplice(2)