mincore(2) — SYSTEM CALLS
NAME
mincore − determine residency of memory pages
SYNOPSIS
#include <unistd.h>
int mincore(caddr_t addr, size_t len, char ∗vec);
DESCRIPTION
mincore returns the primary memory residency status of pages in the address space covered by mappings in the range [addr, addr + len). The status is returned as a character-per-page in the character array referenced by ∗vec (which the system assumes to be large enough to encompass all the pages in the address range). The least significant bit of each character is set to 1 to indicate that the referenced page is in primary memory, 0 if it is not. The settings of other bits in each character are undefined and may contain other information in future implementations.
mincore returns residency information that is accurate at an instant in time. Because the system may frequently adjust the set of pages in memory, this information may quickly be outdated. Only locked pages are guaranteed to remain in memory; see memcntl(2).
RETURN VALUE
mincore returns 0 on success, −1 on failure.
ERRORS
mincore fails if:
EFAULT ∗vec includes an out-of-range or otherwise inaccessible address.
EINVAL addr is not a multiple of the page size as returned by sysconf(3C).
EINVAL The argument len has a value less than or equal to 0.
ENOMEM Addresses in the range [addr, addr + len) are invalid for the address space of a process, or specify one or more pages which are not mapped.