posix_madvise(3)

NUME
posix_madvise - oferă indicații despre modelele de utilizare a memoriei

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <sys/mman.h>

int posix_madvise(size_t size;
                  void addr[size], size_t size, int advice);

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

posix_madvise():
    _POSIX_C_SOURCE >= 200112L

DESCRIERE
Funcția posix_madvise() permite unei aplicații să informeze sistemul cu privire la modelele preconizate de utilizare a memoriei în intervalul de adrese începând de la addr și continuând cu size octeți. Sistemul este liber să utilizeze aceste indicații pentru a îmbunătăți performanța accesărilor de memorie (sau să ignore complet aceste indicații), dar apelarea funcției posix_madvise() nu trebuie să afecteze semantica accesului la memorie în intervalul specificat.

Argumentul advice este unul dintre următoarele:

POSIX_MADV_NORMAL
    Aplicația nu are nicio indicație specială cu privire la modelele de utilizare a memoriei pentru intervalul de adrese specificat. Acesta este comportamentul implicit.

POSIX_MADV_SEQUENTIAL
    Aplicația se așteaptă să acceseze secvențial intervalul de adrese specificat, de la adresele inferioare la cele superioare. Prin urmare, paginile din această regiune pot fi citite agresiv înainte și pot fi eliberate imediat după ce sunt accesate.

POSIX_MADV_RANDOM
    Aplicația se așteaptă să acceseze intervalul de adrese specificat în mod aleatoriu. Astfel, citirea înainte poate fi mai puțin utilă decât în mod normal.

POSIX_MADV_WILLNEED
    Aplicația se așteaptă să acceseze intervalul de adrese specificat în viitorul apropiat. Astfel, citirea anticipată poate fi benefică.

POSIX_MADV_DONTNEED
    Aplicația se așteaptă să nu acceseze intervalul de adrese specificat în viitorul apropiat.

VALOAREA RETURNATĂ
În caz de succes, posix_madvise() returnează 0. În caz de eșec, returnează un număr pozitiv de eroare.

ERORI-IEȘIRE

EINVAL
    addr nu este un multiplu al dimensiunii paginii de sistem sau size este negativă.

EINVAL
    advice nu este validă.

ENOMEM
    Adresele din intervalul specificat sunt parțial sau complet în afara spațiului de adrese al apelantului.

VERSIUNI
POSIX.1 permite unei implementări să genereze o eroare în cazul în care size este 0. În Linux, este permisă specificarea lui size ca fiind 0 (ca un no-op cu succes).

În glibc, această funcție este implementată folosind madvise(2). Cu toate acestea, începând cu glibc 2.6, POSIX_MADV_DONTNEED este tratată ca un no-op, deoarece valoarea corespunzătoare madvise(2), MADV_DONTNEED, are o semantică distructivă.

STANDARDE
POSIX.1-2008.

ISTORIC
glibc 2.2. POSIX.1-2001.

CONSULTAȚI ȘI
madvise(2), posix_fadvise(2)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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.