process_madvise(2) System Calls Manual process_madvise(2) NUME process_madvise - ofera sfaturi despre utilizarea memoriei pentru un proces BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include ssize_t process_madvise(size_t n; int pidfd, const struct iovec iovec[n], size_t n, int advice, unsigned int fanioane); DESCRIERE Apelul de sistem process_madvise() este utilizat pentru a da sfaturi sau indicaii nucleului cu privire la intervalele de adrese ale unui alt proces sau ale procesului apelant. Acesta ofera sfaturi pentru intervalele de adrese descrise de iovec i n. Scopul acestor sfaturi este de a imbunatai performana sistemului sau a aplicaiei. Argumentul pidfd este un descriptor de fiier PID (a se vedea pidfd_open(2)) care specifica procesul caruia trebuie sa i se aplice sfatul. Indicatorul iovec indica o matrice de structuri iovec, descrise in iovec(3type). n specifica numarul de elemente din matricea de structuri iovec. Aceasta valoare trebuie sa fie mai mica sau egala cu IOV_MAX (definita in sau accesibila prin apelul sysconf(_SC_IOV_MAX)). Daca se manipuleaza un alt proces, sau inainte de Linux 6.13, argumentul advice este una dintre urmatoarele valori: MADV_COLD A se vedea madvise(2). MADV_COLLAPSE A se vedea madvise(2). MADV_PAGEOUT A se vedea madvise(2). MADV_WILLNEED A se vedea madvise(2). Incepand cu Linux 6.13, atunci cand se manipuleaza procesul apelant, este permis orice fanion de avizare. Argumentul fanioane este rezervat pentru utilizare viitoare; in prezent, acesta trebuie sa fie specificat ca fiind 0. Argumentele n i iovec sunt verificate inainte de a aplica orice sfat. In cazul in care n este prea mare sau iovec nu este valid, se va returna imediat o eroare i nu se va aplica nici un sfat. Sfatul ar putea fi aplicat numai unei pari din iovec daca unul dintre elementele sale indica o regiune de memorie nevalida in procesul la distana. Nici un alt element nu va fi procesat dincolo de acest punct; (a se vedea discuia privind recomandarile pariale in seciunea VALOAREA RETURNATA). Incepand cu Linux 5.12, permisiunea de a aplica sfaturi unui alt proces este guvernata de verificarea modului de acces ptrace PTRACE_MODE_READ_FSCREDS (a se vedea ptrace(2)); in plus, din cauza implicaiilor de performana ale aplicarii sfaturilor, apelantul trebuie sa aiba capacitatea CAP_SYS_NICE (a se vedea capabilities(7)). VALOAREA RETURNATA In caz de succes, process_madvise() returneaza numarul de octei recomandat. Aceasta valoare de returnare poate fi mai mica decat numarul total de octei solicitai, daca a aparut o eroare dupa ce unele elemente iovec au fost deja procesate. Apelantul trebuie sa verifice valoarea de returnare pentru a determina daca a avut loc o recomandare pariala. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EBADF pidfd nu este un descriptor de fiier PID valid. EFAULT Memoria descrisa de iovec se afla in afara spaiului de adrese accesibil al procesului la care se refera pidfd. EINVAL fanioane(flags) nu este 0. EINVAL Suma valorilor iov_len din iovec depaete o valoare ssize_t. EINVAL n este prea mare. ENOMEM Nu s-a putut aloca memorie pentru copiile interne ale structurilor iovec. EPERM Apelantul nu are permisiunea de a accesa spaiul de adrese al procesului pidfd. ESRCH Procesul inta nu exista (adica s-a incheiat i a fost ateptat). A se vedea madvise(2) pentru erorile specifice advice. STANDARDE Linux. ISTORIC Linux 5.10, glibc 2.36. Suportul pentru acest apel de sistem este opional, in funcie de valoarea opiunii de configurare CONFIG_ADVISE_SYSCALLS. Cand acest apel de sistem a aparut pentru prima data in Linux 5.10, permisiunea de a aplica sfaturi unui alt proces era in intregime guvernata de verificarea modului de acces ptrace PTRACE_MODE_ATTACH_FSCREDS (a se vedea ptrace(2)). Aceasta cerina a fost relaxata in Linux 5.12, astfel incat apelantul sa nu aiba nevoie de control total asupra procesului inta. CONSULTAI I madvise(2), pidfd_open(2), process_vm_readv(2), process_vm_write(2) 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.18 22 februarie 2026 process_madvise(2)