vmsplice(2) System Calls Manual vmsplice(2) NUME vmsplice - imbina paginile de utilizator la/de la o conducta BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #define _GNU_SOURCE /* Consultai feature_test_macros(7) */ #include ssize_t vmsplice(int fd, const struct iovec *iov, size_t nr_segs, unsigned int flags); DESCRIERE Daca fd este deschis pentru scriere, apelul de sistem vmsplice() cartografiaza nr_segs intervale de memorie utilizator descrise de iov intr-o conducta. Daca fd este deschis pentru citire, apelul de sistem vmsplice() completeaza nr_segs intervale de memorie utilizator descrise de iov dintr-o conducta. Descriptorul de fiier fd trebuie sa se refere la o conducta. Indicatorul iov indica o matrice de structuri iovec, aa cum este descris in iovec(3type). Argumentul flags este o masca de bii care se compune prin combinarea prin OR a zero sau mai multe dintre urmatoarele valori: SPLICE_F_MOVE Unused for vmsplice(); see splice(2). SPLICE_F_NONBLOCK Nu blocheaza operaiile de In/Ie; a se vedea splice(2) pentru mai multe detalii. SPLICE_F_MORE In prezent nu are niciun efect pentru vmsplice(), dar poate fi implementat in viitor; a se vedea splice(2). SPLICE_F_GIFT Paginile de utilizator sunt un ,,cadou" pentru nucleu. Aplicaia nu trebuie sa modifice niciodata aceasta memorie, in caz contrar, memoria cache a paginilor i datele de pe disc pot fi diferite. Donarea paginilor catre nucleu inseamna ca un splice(2) SPLICE_F_MOVE ulterior poate muta cu succes paginile; daca acest indicator nu este specificat, atunci un splice(2) SPLICE_F_MOVE ulterior trebuie sa copieze paginile. Datele trebuie, de asemenea, sa fie aliniate corect pe pagini, atat in memorie, cat i in lungime. VALOAREA RETURNATA 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-IEIRE EAGAIN SPLICE_F_NONBLOCK a fost specificat in flags, iar operaia s-ar bloca. EBADF fd fie nu este valid, fie nu se refera la o conducta. EINVAL nr_segs este mai mare decat IOV_MAX; sau memoria nu este aliniata daca este stabilit SPLICE_F_GIFT. ENOMEM Memorie insuficienta. STANDARDE Linux. ISTORIC Linux 2.6.17, glibc 2.5. NOTE vmsplice() urmeaza celelalte funcii de tip citire/scriere vectorizata in ceea ce privete limitarile privind numarul de segmente transmise. Aceasta limita este IOV_MAX aa cum este definita in . In prezent, aceasta limita este de 1024. vmsplice() accepta cu adevarat o imbinare adevarata numai din memoria utilizatorului catre o conducta. In direcia opusa, de fapt, copiaza doar datele in spaiul utilizatorului. Dar acest lucru face ca interfaa sa fie placuta i simetrica i permite oamenilor sa construiasca pe baza vmsplice() cu spaiu pentru imbunatairea viitoare a performanelor. CONSULTAI I splice(2), tee(2), pipe(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.8 2 mai 2024 vmsplice(2)