| MADVISE(2) | System Calls Manual | MADVISE(2) |
madvise,
posix_madvise — give advice
about use of memory
Standard C Library (libc, -lc)
#include
<sys/mman.h>
int
madvise(void
*addr, size_t len,
int behav);
int
posix_madvise(void
*addr, size_t len,
int advice);
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 known behaviors are:
MADV_NORMALMADV_RANDOMMADV_SEQUENTIALMADV_WILLNEEDMADV_DONTNEEDMADV_FREEPortable programs that call the
posix_madvise()
interface should use the aliases POSIX_MADV_NORMAL,
POSIX_MADV_SEQUENTIAL,
POSIX_MADV_RANDOM,
POSIX_MADV_WILLNEED, and
POSIX_MADV_DONTNEED rather than the flags described
above.
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
madvise() will fail if:
EINVAL]mincore(2), mprotect(2), msync(2), munmap(2), posix_fadvise(2)
The posix_madvise() system call is
expected to conform to the IEEE Std 1003.1-2001
(“POSIX.1”) standard.
The madvise system call first appeared in
4.4BSD, but until NetBSD 1.5
it did not perform any of the requests on, or change any behavior of the
address range given. The posix_madvise() call was
added in NetBSD 5.0.
| March 29, 2011 | NetBSD 11.0 |