.\" -*- coding: UTF-8 -*- .\" This manpage is Copyright (C) 2006 Jens Axboe .\" and Copyright (C) 2006 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH vmsplice 2 "30 martie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME vmsplice \- îmbină paginile de utilizator la/de la o conductă .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#define _GNU_SOURCE\fP /* Consultați feature_test_macros(7) */ \fB#include \fP .PP \fBssize_t vmsplice(int \fP\fIfd\fP\fB, const struct iovec *\fP\fIiov\fP\fB,\fP \fB size_t \fP\fInr_segs\fP\fB, unsigned int \fP\fIflags\fP\fB);\fP .fi .\" Return type was long before glibc 2.7 .SH DESCRIERE .\" Linus: vmsplice() system call to basically do a "write to .\" the buffer", but using the reference counting and VM traversal .\" to actually fill the buffer. This means that the user needs to .\" be careful not to reuse the user-space buffer it spliced into .\" the kernel-space one (contrast this to "write()", which copies .\" the actual data, and you can thus reuse the buffer immediately .\" after a successful write), but that is often easy to do. .\" Since Linux 2.6.23 .\" commit 6a14b90bb6bc7cd83e2a444bf457a2ea645cbfe7 Dacă \fIfd\fP este deschis pentru scriere, apelul de sistem \fBvmsplice\fP() cartografiază \fInr_segs\fP intervale de memorie utilizator descrise de \fIiov\fP într\-o conductă. Dacă \fIfd\fP este deschis pentru citire, apelul de sistem \fBvmsplice\fP() completează \fInr_segs\fP intervale de memorie utilizator descrise de \fIiov\fP dintr\-o conductă. Descriptorul de fișier \fIfd\fP trebuie să se refere la o conductă. .PP Indicatorul \fIiov\fP indică o matrice de structuri \fIiovec\fP, așa cum este descris în \fBiovec\fP(3type). .PP Argumentul \fIflags\fP este o mască de biți care se compune prin combinarea prin OR a zero sau mai multe dintre următoarele valori: .TP \fBSPLICE_F_MOVE\fP Unused for \fBvmsplice\fP(); see \fBsplice\fP(2). .TP \fBSPLICE_F_NONBLOCK\fP .\" Not used for vmsplice .\" May be in the future -- therefore EAGAIN Nu blochează operațiile de In/Ieș; a se vedea \fBsplice\fP(2) pentru mai multe detalii. .TP \fBSPLICE_F_MORE\fP În prezent nu are niciun efect pentru \fBvmsplice\fP(), dar poate fi implementat în viitor; a se vedea \fBsplice\fP(2). .TP \fBSPLICE_F_GIFT\fP .\" FIXME . Explain the following line in a little more detail: .\" FIXME .\" It looks like the page-alignment requirement went away with .\" commit bd1a68b59c8e3bce45fb76632c64e1e063c3962d .\" .\" .... if we expect to later SPLICE_F_MOVE to the cache. 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 \fBsplice\fP(2) \fBSPLICE_F_MOVE\fP ulterior poate muta cu succes paginile; dacă acest indicator nu este specificat, atunci un \fBsplice\fP(2) \fBSPLICE_F_MOVE\fP ulterior trebuie să copieze paginile. Datele trebuie, de asemenea, să fie aliniate corect pe pagini, atât în memorie, cât și în lungime. .SH "VALOAREA RETURNATĂ" Upon successful completion, \fBvmsplice\fP() returns the number of bytes transferred to the pipe. On error, \fBvmsplice\fP() returns \-1 and \fIerrno\fP is set to indicate the error. .SH ERORI\-IEȘIRE .TP \fBEAGAIN\fP \fBSPLICE_F_NONBLOCK\fP a fost specificat în \fIflags\fP, iar operația s\-ar bloca. .TP \fBEBADF\fP \fIfd\fP fie nu este valid, fie nu se referă la o conductă. .TP \fBEINVAL\fP \fInr_segs\fP este mai mare decât \fBIOV_MAX\fP; sau memoria nu este aliniată dacă este stabilit \fBSPLICE_F_GIFT\fP. .TP \fBENOMEM\fP Memorie insuficientă. .SH STANDARDE Linux. .SH ISTORIC Linux 2.6.17, glibc 2.5. .SH NOTE .\" UIO_MAXIOV in kernel source \fBvmsplice\fP() 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 \fBIOV_MAX\fP așa cum este definită în \fI\fP. În prezent, această limită este de 1024. .PP .\" commit 6a14b90bb6bc7cd83e2a444bf457a2ea645cbfe7 \fBvmsplice\fP() 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 \fBvmsplice\fP() cu spațiu pentru îmbunătățirea viitoare a performanțelor. .SH "CONSULTAȚI ȘI" \fBsplice\fP(2), \fBtee\fP(2), \fBpipe\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .