Originální popis anglicky:
munlock - reenable paging for some parts of memory
Návod, kniha: Linux Programmer's Manual
#include <sys/mman.h>
int munlock(const void *addr, size_t len);
munlock reenables paging for the memory in the range starting at
addr with length
len bytes. All pages which contain a part of
the specified memory range can after calling
munlock be moved to
external swap space again by the kernel.
Memory locks do not stack, i.e., pages which have been locked several times by
calls to
mlock or
mlockall will be unlocked by a single call to
munlock for the corresponding range or by
munlockall. Pages
which are mapped to several locations or by several processes stay locked into
RAM as long as they are locked at least at one location or by at least one
process.
On POSIX systems on which
mlock and
munlock are available,
_POSIX_MEMLOCK_RANGE is defined in <unistd.h> and the value
PAGESIZE from <limits.h> indicates the number of bytes per page.
On success,
munlock returns zero. On error, -1 is returned,
errno
is set appropriately, and no changes are made to any locks in the address
space of the process.
- EINVAL
- (Not on Linux) addr was not a multiple of the page
size.
- ENOMEM
- Some of the specified address range does not correspond to
mapped pages in the address space of the process.
Linux adds
- EINVAL
- len was negative.
POSIX.1b, SVr4
mlock(2),
mlockall(2),
munlockall(2)