diff options
Diffstat (limited to 'man2/getpagesize.2')
-rw-r--r-- | man2/getpagesize.2 | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/man2/getpagesize.2 b/man2/getpagesize.2 new file mode 100644 index 0000000..6f3b54b --- /dev/null +++ b/man2/getpagesize.2 @@ -0,0 +1,89 @@ +.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl> +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.TH getpagesize 2 2023-03-30 "Linux man-pages 6.05.01" +.SH NAME +getpagesize \- get memory page size +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.B #include <unistd.h> +.PP +.B int getpagesize(void); +.fi +.PP +.RS -4 +Feature Test Macro Requirements for glibc (see +.BR feature_test_macros (7)): +.RE +.PP +.BR getpagesize (): +.nf + Since glibc 2.20: + _DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L) + glibc 2.12 to glibc 2.19: + _BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L) + Before glibc 2.12: + _BSD_SOURCE || _XOPEN_SOURCE >= 500 +.\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED +.fi +.SH DESCRIPTION +The function +.BR 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 +.BR mmap (2). +.SH STANDARDS +None. +.SH HISTORY +This call first appeared in 4.2BSD. +SVr4, 4.4BSD, SUSv2. +In SUSv2 the +.BR getpagesize () +call is labeled LEGACY, and in POSIX.1-2001 +it has been dropped; +HP-UX does not have this call. +.SH NOTES +Portable applications should employ +.I sysconf(_SC_PAGESIZE) +instead of +.BR getpagesize (): +.PP +.in +4n +.EX +#include <unistd.h> +long sz = sysconf(_SC_PAGESIZE); +.EE +.in +.PP +(Most systems allow the synonym +.B _SC_PAGE_SIZE +for +.BR _SC_PAGESIZE .) +.PP +Whether +.BR getpagesize () +is present as a Linux system call depends on the architecture. +If it is, it returns the kernel symbol +.BR PAGE_SIZE , +whose value depends on the architecture and machine model. +Generally, one uses binaries that are dependent on the architecture but not +on the machine model, in order to have a single binary +distribution per architecture. +This means that a user program +should not find +.B PAGE_SIZE +at compile time from a header file, +but use an actual system call, at least for those architectures +(like sun4) where this dependency exists. +Here glibc 2.0 fails because its +.BR getpagesize () +returns a statically derived value, and does not use a system call. +Things are OK in glibc 2.1. +.SH SEE ALSO +.BR mmap (2), +.BR sysconf (3) |