Scroll to navigation

getpagesize(2) System Calls Manual getpagesize(2)

NAZWA

getpagesize - pobiera rozmiar strony pamięci

BIBLIOTEKA

Standardowa biblioteka C (libc, -lc)

SKŁADNIA

#include <unistd.h>
int getpagesize(void);

Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

getpagesize():


Od glibc 2.20:
_DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
glibc 2.12 do glibc 2.19:
_BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
Przed glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE >= 500

OPIS

Funkcja getpagesize() zwraca liczbę bajtów w stronie pamięci, gdzie „strona” jest blokiem o ustalonej długości, jednostką przypisywania pamięci i mapowania plików dokonywanych przez mmap(2)

STANDARDY

Brak.

HISTORIA

Wywołanie pojawiło się pierwotnie w 4.2BSD. SVr4, 4.4BSD, SUSv2. W SUSv2 funkcja getpagesize() jest oznaczona jako przestarzała, a w POSIX.1-2001 została pominięta. HP-UX nie zawiera tej funkcji.

UWAGI

Przenośne aplikacje powinny używać sysconf(_SC_PAGESIZE) zamiast getpagesize():


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

(Większość systemów dopuszcza również synonim _SC_PAGE_SIZE dla _SC_PAGESIZE).

Obecność getpagesize() jako funkcji systemowej Linuksa zależy od architektury. Jeśli istnieje, zwraca symbol jądra PAGE_SIZE, który zależy od architektury i modelu maszyny. W ogólności, aby mieć jedną dystrybucję binarną dla każdej architektury, używa się plików binarnych, które są zależne od architektury, ale nie od modelu maszyny. Oznacza to, że program użytkownika nie powinien określać PAGE_SIZE podczas kompilacji na podstawie plików nagłówkowych, a używać bieżącej funkcji systemowej, co najmniej dla tych architektur (np. sun4), dla których istnieje zależność PAGE_SIZE od modelu maszyny. W tym miejscu libc4, libc5 i glibc 2.0 zawodzą, gdyż ich getpagesize() zwraca wartość wyliczoną statycznie, a nie korzysta funkcji systemowej. Wszystko jest OK w glibc 2.1.

ZOBACZ TAKŻE

mmap(2), sysconf(3)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

30 marca 2023 r. Linux man-pages 6.05.01