NAME
munlockall() — unlock the entire virtual address space of a process
SYNOPSIS
#include <sys/mman.h>
int munlockall();
DESCRIPTION
The
munlockall()
system call allows the calling process to unlock
any portions of its virtual address space that have previously
been locked into memory with
mlock()
or
mlockall(),
including any portions locked due to the
MCL_FUTURE
option of
mlockall().
Upon successful completion of the
munlockall(),
all pages within the process virtual address space
are subject to routine paging and/or swapping
and the
MCL_FUTURE
option will no longer be in effect for the process.
Regardless of how many times a process locks a page, a single
munlockall()
will unlock it.
When memory is shared by multiple processes and
mlocks are applied to the same physical page by multiple
processes, a page remains locked
until the last lock is removed from that page.
The effective user ID of the calling process
must be a
user with the
MLOCK
privilege.
Although
plock()
and the
mlock()
family of functions may be used together in an application,
each may affect the other in unexpected ways.
This practice is not recommended.
Security Restrictions
Some or all of the actions associated with this system call require the
MLOCK
privilege.
Processes owned by the superuser have this privilege.
Processes owned by other users may have this privilege, depending on system
configuration.
See
privileges(5)
for more information about privileged access on systems that support
fine-grained privileges.
RETURN VALUE
munlockall()
returns the following values:
- 0
Successful completion.
- -1
Failure.
The requested operation is not performed.
errno
is set to indicate the error.
ERRORS
If
munlockall()
fails,
errno
is set to the following value:
- EPERM
The effective user ID of the calling process
is not a
user with the
MLOCK
privilege.
EXAMPLES
The following call to
munlockall()
unlocks the process virtual address space:
STANDARDS CONFORMANCE
munlockall(): POSIX Realtime Extensions, IEEE Std 1003.1b