Scroll to navigation

mincore(2) System Calls Manual mincore(2)

NUME

mincore - determină dacă paginile sunt rezidente în memorie

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

#include <sys/mman.h>
int mincore(void addr[.length], size_t length, unsigned char *vec);

Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

mincore():


Începând cu glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 și versiunile anterioare:
_BSD_SOURCE || _SVID_SOURCE

DESCRIERE

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.

VALOAREA RETURNATĂ

În caz de succes, mincore() returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI

EAGAIN nucleul este temporar în criză de resurse.

vec indică o adresă nevalidă.
addr nu este un multiplu al dimensiunii paginii.
length este mai mare decât (TASK_SIZE - addr); (acest lucru ar putea să apară dacă se specifică o valoare negativă pentru length, deoarece această valoare va fi interpretată ca un număr întreg mare fără semn). În Linux 2.6.11 și în versiunile anterioare, pentru această condiție era returnată eroarea EINVAL.
De la addr până la addr + length conținea memorie necartografiată.

VERSIUNI

Disponibil începând cu Linux 2.3.99pre1 și glibc 2.2.

STANDARDE

mincore() nu este specificat în POSIX.1 și nu este disponibil pe toate implementările UNIX.

ERORI

Î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)).

CONSULTAȚI ȘI

fincore(1), madvise(2), mlock(2), mmap(2), posix_fadvise(2), posix_madvise(3)

TRADUCERE

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