# posix_madvise

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           posix_madvise — memory advisory information and alignment control
           (**ADVANCED REALTIME**)
    


## SYNOPSIS



           #include <sys/mman.h>
    
           int posix_madvise(void *_addr_ , size_t _len_ , int _advice_);
    


## DESCRIPTION



           The _posix_madvise_() function shall advise the implementation on
           the expected behavior of the application with respect to the data
           in the memory starting at address _addr_ , and continuing for _len_
           bytes. The implementation may use this information to optimize
           handling of the specified data. The _posix_madvise_() function shall
           have no effect on the semantics of access to memory in the
           specified range, although it may affect the performance of access.
    
           The implementation may require that _addr_ be a multiple of the page
           size, which is the value returned by _sysconf_() when the name value
           _SC_PAGESIZE is used.
    
           The advice to be applied to the memory range is specified by the
           _advice_ parameter and may be one of the following values:
    
           POSIX_MADV_NORMAL
                 Specifies that the application has no advice to give on its
                 behavior with respect to the specified range. It is the
                 default characteristic if no advice is given for a range of
                 memory.
    
           POSIX_MADV_SEQUENTIAL
                 Specifies that the application expects to access the
                 specified range sequentially from lower addresses to higher
                 addresses.
    
           POSIX_MADV_RANDOM
                 Specifies that the application expects to access the
                 specified range in a random order.
    
           POSIX_MADV_WILLNEED
                 Specifies that the application expects to access the
                 specified range in the near future.
    
           POSIX_MADV_DONTNEED
                 Specifies that the application expects that it will not
                 access the specified range in the near future.
    
           These values are defined in the _< sys/mman.h>_ header.
    


## RETURN VALUE



           Upon successful completion, _posix_madvise_() shall return zero;
           otherwise, an error number shall be returned to indicate the
           error.
    


## ERRORS



           The _posix_madvise_() function shall fail if:
    
           **EINVAL** The value of _advice_ is invalid.
    
           **ENOMEM** Addresses in the range starting at _addr_ and continuing for
                  _len_ bytes are partly or completely outside the range
                  allowed for the address space of the calling process.
    
           The _posix_madvise_() function may fail if:
    
           **EINVAL** The value of _addr_ is not a multiple of the value returned
                  by _sysconf_() when the name value _SC_PAGESIZE is used.
    
           **EINVAL** The value of _len_ is zero.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           The _posix_madvise_() function is part of the Advisory Information
           option and need not be provided on all implementations.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *