Scroll to navigation

getpagesize(2) System Calls Manual 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

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 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