---
name: "getpagesizes"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/getpagesizes"
---

# getpagesizes(3)

get system page sizes

## NAME

**getpagesizes** – get system page sizes

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<sys/mman.h\>**

*int*\

**getpagesizes**(*size\_t pagesize\[\]*, *int nelem*);

## DESCRIPTION

The **getpagesizes**() function retrieves page size information from the system. When it is called with *pagesize* specified as NULL and *nelem* specified as 0, it returns the number of distinct page sizes that are supported by the system. Otherwise, it assigns up to *nelem* of the system-supported page sizes to consecutive elements of the array referenced by *pagesize*. These page sizes are expressed in bytes. In this case, **getpagesizes**() returns the number of such page sizes that it assigned to the array.

## RETURN VALUES

If successful, the **getpagesizes**() function returns either the number of page sizes that are supported by the system or the number of supported page sizes that it assigned to the array referenced by *pagesize*. Otherwise, it returns the value -1 and sets *errno* to indicate the error.

## ERRORS

The **getpagesizes**() function will succeed unless:

- \[EINVAL\]

  The *pagesize* argument is NULL and the *nelem* argument is non-zero.

- \[EINVAL\]

  The *nelem* argument is less than zero.

## SEE ALSO

[getpagesize(3)](/getpagesize/3.md)

## HISTORY

The **getpagesizes**() function first appeared in Solaris 9. This manual page was written in conjunction with a new but compatible implementation that was first released in FreeBSD 7.3.

## AUTHORS

This manual page was written by Alan L. Cox ⟨*alc@cs.rice.edu*⟩.
