GETPAGESIZE(2)

NAZWA
getpagesize - pobranie rozmiaru strony pamięci

SKŁADNIA
#include <unistd.h>

int getpagesize(void);

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

getpagesize():
    Since glibc 2.20:
        _DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
    Glibc 2.12 to 2.19:
        _BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
    Before glibc 2.12:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500

OPIS
The function getpagesize() returns the number of bytes in a memory page, where "page" is a fixed-length block, the unit for memory allocation and file mapping performed by mmap(2).

ZGODNE Z
SVr4, 4.4BSD, SUSv2. W SUSv2 funkcja getpagesize() jest oznaczona jako "pozostałość" ("LEGACY"), a w POSIX.1-2001 została pominięta. HP-UX nie zawiera tej funkcji.

UWAGI
Portable applications should employ sysconf(_SC_PAGESIZE) instead of getpagesize():

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

(Most systems allow the synonym _SC_PAGE_SIZE for _SC_PAGESIZE.)

Obecność getpagesize() jako funkcji systemowej Linuksa zależy od architektury. Jeśli istnieje, zwracasymbol 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ę binariów, 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)

O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.13 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> 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 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.