NAME
munmap — unmap pages of memory
SYNOPSIS
#include <sys/mman.h>
int munmap(void *addr, size_t len);
DESCRIPTION
The
munmap()
function removes the mappings for pages
in the range
[addr,
addr+len],
rounding the
len
argument up to the next multiple of the page size as
returned by
sysconf().
If
addr
is not the address
of a mapping established by a prior call to
mmap(),
the behavior is undefined. After a successful call to
munmap()
and before any subsequent mapping of the
unmapped pages, further references to these pages
will result in the delivery of a
SIGBUS
or
SIGSEGV
signal to the process.
If the specified address range was created by multiple calls to
mmap(),
munmap()
succeeds in unmapping all of the specified regions,
provided they form a contiguous address range.
If the region was created with the
MAP_PRIVATE
option, any modifications made to the region are discarded.
RETURN VALUE
Upon successful completion,
munmap()
returns
0.
Otherwise, it returns
-1
and sets
errno
to indicate the error.
ERRORS
The
munmap()
function will fails if:
- [EINVAL]
The
addr
argument is not a multiple of the page size as returned by
sysconf(_SC_PAGE_SIZE).
- [EINVAL]
Addresses in the range
[addr,
addr+len],
are outside the valid range for the address space of a process.
- [EINVAL]
The address range specified by
addr
and
len
was not created by a successful call to
mmap().
- [EINVAL]
The
len
argument is
0.
AUTHOR
munmap()
was developed by HP, AT&T, and OSF.
STANDARDS CONFORMANCE
munmap(): AES, SVID3
CHANGE HISTORY
First released in Issue 4, Version 2.