getpagesize(2)

NUME
getpagesize - obține dimensiunea paginii de memorie

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <unistd.h>

int getpagesize(void);

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

getpagesize():
    Începând cu glibc 2.20:
        _DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
    de la glibc 2.12 la glibc 2.19:
        _BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
    Înainte de glibc 2.12:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500

DESCRIERE
Funcția getpagesize() returnează numărul de octeți dintr-o pagină de memorie, unde „page” este un bloc de lungime fixă, unitatea pentru alocarea memoriei și cartografierea fișierelor realizată de mmap(2).

STANDARDE
Niciunul.

ISTORIC
Acest apel a apărut pentru prima dată în 4.2BSD. SVr4, 4.4BSD, SUSv2. În SUSv2, apelul getpagesize() este etichetat ca depreciat „LEGACY”, iar în POSIX.1-2001 a fost înlăturat; HP-UX nu are acest apel.

NOTE
Aplicațiile portabile ar trebui să utilizeze sysconf(_SC_PAGESIZE) în loc de getpagesize():

    #include <unistd.h>
    long sz = sysconf(_SC_PAGESIZE);

(Majoritatea sistemelor permit sinonimul _SC_PAGE_SIZE pentru _SC_PAGESIZE).

Dacă getpagesize() este sau nu prezent ca apel de sistem Linux depinde de arhitectură. În caz afirmativ, acesta returnează simbolul PAGE_SIZE din nucleu, a cărui valoare depinde de arhitectură și de modelul de mașină. În general, se folosesc binari care depind de arhitectură, dar nu și de modelul de mașină, pentru a avea o singură distribuție binară pentru fiecare arhitectură. Aceasta înseamnă că un program de utilizator nu ar trebui să găsească PAGE_SIZE la compilare dintr-un fișier antet, ci să utilizeze un apel de sistem real, cel puțin pentru acele arhitecturi (cum ar fi sun4) în care există această dependență. În acest caz, glibc 2.0 nu reușește, deoarece getpagesize() returnează o valoare derivată static și nu utilizează un apel de sistem. Lucrurile sunt în regulă în glibc 2.1.

CONSULTAȚI ȘI
mmap(2), sysconf(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 (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.