NAME
madvise
,
posix_madvise
—
give advice about use of
memory
SYNOPSIS
#include
<sys/mman.h>
int
madvise
(void
*addr, size_t len,
int behav);
int
posix_madvise
(void
*addr, size_t len,
int behav);
DESCRIPTION
The
madvise
()
system call allows a process that has knowledge of its memory behavior to
describe it to the system. The posix_madvise
()
interface is identical and is provided for standards conformance.
The possible behaviors are:
MADV_NORMAL
- No further special treatment needed.
MADV_RANDOM
- Expect random page access patterns.
MADV_SEQUENTIAL
- Expect sequential page references.
MADV_WILLNEED
- The pages will be referenced soon.
MADV_DONTNEED
- The pages will not be referenced soon.
MADV_SPACEAVAIL
- Ensure that resources are reserved.
MADV_FREE
- The pages don't contain any useful data and can be recycled.
Portable programs that call the
posix_madvise
()
interface should use the aliases POSIX_MADV_NORMAL
,
POSIX_MADV_RANDOM
,
POSIX_MADV_SEQUENTIAL
,
POSIX_MADV_WILLNEED
, and
POSIX_MADV_DONTNEED
rather than the flags described
above.
RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
SEE ALSO
STANDARDS
The posix_madvise
() system call is
expected to conform to the IEEE Std 1003.1-2001
(“POSIX.1”) standard.
HISTORY
The madvise
function first appeared in
4.4BSD. The posix_madvise
function first appeared in OpenBSD 4.8.