mlock(2)mlock(2)NAMEmlock() - lock a segment of the process virtual address space in memory
SYNOPSISDESCRIPTION
The system call allows the calling process to lock a segment of the
process virtual address space into memory. Any addressable segment of
the process' address space may be locked. Locked segments are immune
to all routine swapping.
addr must be a valid address in the process virtual address space.
addr + len must also be a valid address in the process virtual address
space.
Locks are applied at page boundaries that encompass the range from addr
to addr + len. If any address within the range is not valid, an error
is returned and no locks are applied.
or can be used to unlock memory segments (or all memory segments)
locked with
Regardless of how many times a process locks a page, a single or will
unlock it. An of a page within a range specified in an call results in
only the range specified in the being unlocked.
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.
Locks applied with are not inherited by a child process.
The user must have the privilege.
Although and the family of functions may be used together in an appli‐
cation, 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
privilege. Processes owned by the superuser have this privilege. Pro‐
cesses owned by other users may have this privilege, depending on sys‐
tem configuration. See privileges(5) for more information about privi‐
leged access on systems that support fine-grained privileges.
RETURN VALUE
returns the following values:
Successful completion.
Failure.
The requested operation is not performed. is set to
indicate the error.
ERRORS
If fails, is set to one of the following values:
One or more addresses in the specified range is not valid within
the process address space.
There is not enough lockable memory in the system
to satisfy the locking request.
The parameter was zero.
The user does not have the
privilege.
EXAMPLES
The following call to locks the first 10 pages of the calling process
in memory:
SEE ALSOsetprivgrp(1M), getprivgrp(2), mlockall(2), munlock(2), munlockall(2),
plock(2), privileges(5).
STANDARDS CONFORMANCEmlock(2)