[ Previous | Next | Contents | Glossary | Home | Search ]
AIX Version 4.3 Base Operating System and Extensions Technical Reference, Volume 1

madvise Subroutine


Advises the system of expected paging behavior.


Standard C Library (libc.a).


#include <sys/types.h>
#include <sys/mman.h>
int madvise(addr, lenbehav)
caddr_t addr;
size_t len;
int behav;


The madvise subroutine permits a process to advise the system about its expected future behavior in referencing a mapped file region or anonymous memory region.


addr Specifies the starting address of the memory region. Must be a multiple of the page size returned by the sysconf subroutine using the _SC_PAGE_SIZE value for the Name parameter.
len Specifies the length, in bytes, of the memory region. If the len value is not a multiple of page size as returned by the sysconf subroutine using the _SC_PAGE_SIZE value for the Name parameter, the length of the region will be rounded up to the next multiple of the page size.
behav Specifies the future behavior of the memory region. The following values for the behav parameter are defined in the /usr/include/sys/mman.h file:
Paging Behavior Message
The system provides no further special treatment for the memory region.
The system expects random page references to that memory region.
The system expects sequential page references to that memory region.
The system expects the process will need these pages.
The system expects the process does not need these pages.
The system will ensure that memory resources are reserved.

Return Values

When successful, the madvise subroutine returns 0. Otherwise, it returns -1 and sets the errno global variable to indicate the error.

Error Codes

If the madvise subroutine is unsuccessful, the errno global variable can be set to one of the following values:

EINVAL The behav parameter is invalid.
ENOSPC The behav parameter specifies MADV_SPACEAVAIL and resources cannot be reserved.

Implementation Specifics

The madvise subroutine has no functionality and is supported for compatibility only. It is part of Base Operating System (BOS) Runtime.

Related Information

The mmap subroutine, sysconf subroutine.

List of Memory Manipulation Services and Understanding Paging Space Programming Requirements in AIX Version 4.3 General Programming Concepts: Writing and Debugging Programs.

[ Previous | Next | Contents | Glossary | Home | Search ]