provide mapping hints to
*addr, size_t len,
system call checks the existing memory mappings of a process and returns
hints to the caller about where to put a memory mapping. This hint can be
later used when performing memory mappings with the
mmap(2) system call with
MAP_FIXED in the
flags. The addr argument should be a memory location
that which the caller specifies the preferred address. The
size argument specifies the requested size of the
memory area the caller is looking for. The fd and
off arguments specify the file that will be mapped and
the offset in it, this is the same as the corresponding arguments to
The behavior of the function depends on the
flags argument. If set to
MAP_FIXED, the pointer addr is
used as a fixed hint and
MAP_FAILED and set
ENOMEM if there is
not size bytes free after that address. Otherwise it
will return the hint addr. If no flags are set,
mquery() will use addr as a
starting point in memory and will search forward to find a memory area with
size bytes free and that will be suitable for creating
a mapping for the file and offset specified in the fd
and off arguments. When no such area can be found,
mquery() will return
MAP_FAILED and set errno to
indicate the error.
When a memory range satisfying the request is found,
mquery() returns the available address. Otherwise,
MAP_FAILED is returned and
errno is set to indicate the error.
mquery() will fail if:
MAP_FIXEDwas specified and the requested memory area is unavailable.
- There was not enough memory left after the hint specified.
- fd is not a valid open file descriptor.
mquery() function should not be used
in portable applications.
mquery() function first appeared in