---
name: "getpagesize"
section: "2"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/getpagesize"
---

# getpagesize(2)

get memory page size

## NAME

getpagesize - get memory page size

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <unistd.h>
```

**int getpagesize(void);**

Feature Test Macro Requirements for glibc (see [**feature\_test\_macros**(7)](/feature_test_macros/7.md)):

**getpagesize**():

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

## DESCRIPTION

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)](/mmap/2.md).

## VERSIONS

A user program should not hard-code a page size, neither as a literal nor using the **PAGE\_SIZE** macro, because some architectures support multiple page sizes.

This manual page is in section 2 because Alpha, SPARC, and SPARC64 all have a Linux system call **getpagesize**() though other architectures do not, and use the ELF auxiliary vector instead.

## STANDARDS

None.

## HISTORY

4\.2BSD, SVr4, SUSv1. In SUSv2 the **getpagesize**() call was labeled LEGACY, and it was removed in POSIX.1-2001.

glibc 2.0 returned a constant even on architectures with multiple page sizes.

## SEE ALSO

[**mmap**(2)](/mmap/2.md), [**sysconf**(3)](/sysconf/3.md)
