mincore(2) | System Calls Manual | mincore(2) |
mincore - determină dacă paginile sunt rezidente în memorie
Biblioteca C standard (libc, -lc)
#include <sys/mman.h>
int mincore(void addr[.length], size_t length, unsigned char *vec);
mincore():
Începând cu glibc 2.19: _DEFAULT_SOURCE glibc 2.19 și versiunile anterioare: _BSD_SOURCE || _SVID_SOURCE
mincore() returnează un vector care indică dacă paginile din memoria virtuală a procesului apelant sunt rezidente în nucleu (RAM) și, prin urmare, nu vor cauza un acces la disc (page fault) dacă sunt menționate. Nucleul returnează informații de rezidență despre pagini începând cu adresa addr și continuând cu length octeți.
Argumentul addr trebuie să fie un multiplu al dimensiunii paginii de sistem. Argumentul length nu trebuie neapărat să fie un multiplu al dimensiunii paginii, dar deoarece informațiile privind rezidența sunt returnate pentru pagini întregi, length este rotunjit efectiv la următorul multiplu al dimensiunii paginii. Se poate obține dimensiunea paginii (PAGE_SIZE) folosind sysconf(_SC_PAGESIZE).
Argumentul vec trebuie să indice o matrice care să conțină cel puțin (length+PAGE_SIZE-1) / PAGE_SIZE octeți. La returnare, bitul cel mai puțin semnificativ al fiecărui octet va fi activat în cazul în care pagina corespunzătoare se află în prezent în memorie, iar în caz contrar va fi dezactivat; (definirile celorlalți biți din fiecare octet sunt nedefinite; acești biți sunt rezervați pentru o eventuală utilizare ulterioară). Bineînțeles, informațiile returnate în vec sunt doar un instantaneu: paginile care nu sunt blocate în memorie pot apărea și dispărea în orice moment, iar conținutul lui vec poate fi deja expirat în momentul în care se întoarce acest apel.
În caz de succes, mincore() returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
EAGAIN nucleul este temporar în criză de resurse.
Disponibil începând cu Linux 2.3.99pre1 și glibc 2.2.
mincore() nu este specificat în POSIX.1 și nu este disponibil pe toate implementările UNIX.
Înainte de Linux 2.6.21, mincore() nu returna informații corecte pentru cartografieri MAP_PRIVATE sau pentru cartografieri neliniare (stabilite cu ajutorul remap_file_pages(2)).
fincore(1), madvise(2), mlock(2), mmap(2), posix_fadvise(2), posix_madvise(3)
Traducerea în limba română a acestui manual a fost creată 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.
5 februarie 2023 | Pagini de manual de Linux 6.03 |