plock(2) plock(2)
NAME [Toc] [Back]
plock() - lock process, text, data, stack, or shared library in memory
SYNOPSIS [Toc] [Back]
#include <sys/lock.h>
int plock(int op);
DESCRIPTION [Toc] [Back]
The plock() system call allows the calling process to lock the text
segment of the process (text lock), its data segment (data lock), or
both its text and data segment (process lock) into memory. Stack
segments are also locked when data segments are locked. Shared
library text and shared library data segments (shlib lock) can also be
locked. Locked segments are immune to all routine swapping. plock()
also allows these segments to be unlocked.
The effective user ID of the calling process must be a superuser or
the user must be a member of a group that has the MLOCK privilege (see
getprivgrp(2) and setprivgrp(1M)).
op must be one of the following:
PROCLOCK Lock text and data segments into memory
(process lock)
TXTLOCK Lock text segment into memory (text lock)
DATLOCK Lock data segment into memory (data lock)
UNLOCK Remove locks
SHLIBLOCK Lock shared library text and shared library
data segments (shared library lock)
PROCSHLIBLOCK Lock text, data and shared library text and
shared library data segments into memory
(process and shared library lock)
TXTSHLIBLOCK Lock text, shared library text and shared
library data segments into memory (text and
shared library lock)
DATSHLIBLOCK Lock data, shared library text and shared
library data segments into memory (data and
shared library lock)
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.
Hewlett-Packard Company - 1 - HP-UX 11i Version 2: August 2003
plock(2) plock(2)
RETURN VALUE [Toc] [Back]
plock() returns the following values:
0 Successful completion.
-1 Failure. The requested operation is not performed. errno
is set to indicate the error.
ERRORS [Toc] [Back]
If plock() fails, errno is set to one of the following values.
[EINVAL] op is equal to PROCLOCK and a process lock, a text
lock, or a data lock already exists on the calling
process.
[EINVAL] op is equal to TXTLOCK and a text lock or process
lock already exists on the calling process.
[EINVAL] op is equal to DATLOCK and a data lock, or process
lock already exists on the calling process.
[EINVAL] op is equal to UNLOCK and no type of lock exists
on the calling process.
[EINVAL] op is equal to SHLIBLOCK and there are no unlocked
shared library segments in the calling process.
[EINVAL] op is equal to PROCSHLIBLOCK and a process lock, a
text lock, or a data lock already exists on the
calling process.
[EINVAL] op is equal to TXTSHLIBLOCK and a text lock or
process lock already exists on the calling
process.
[EINVAL] op is equal to DATSHLIBLOCK and a data lock, or
process lock already exists on the calling
process.
[EINVAL] op is not equal to one of the values specified in
DESCRIPTION.
[EINVAL] plock() is not allowed in a [vfork,exec] window.
See vfork(2).
[ENOMEM] There is not enough lockable memory in the system
to satisfy the locking request.
[EPERM] The effective user ID of the calling process is
not a superuser and the user does not belong to a
group that has the MLOCK privilege.
Hewlett-Packard Company - 2 - HP-UX 11i Version 2: August 2003
plock(2) plock(2)
EXAMPLES [Toc] [Back]
The following call to plock() locks the calling process in memory:
plock(PROCLOCK);
SEE ALSO [Toc] [Back]
setprivgrp(1M), exec(2), exit(2), fork(2), getprivgrp(2), mlock(2),
vfork(2).
STANDARDS CONFORMANCE [Toc] [Back]
plock(): SVID2, SVID3, XPG2
Hewlett-Packard Company - 3 - HP-UX 11i Version 2: August 2003 [ Back ] |