Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > P

plock(2)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

plock() — lock process, text, data, stack, or shared library in memory

SYNOPSIS

#include <sys/lock.h>

int plock(int op);

DESCRIPTION

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 user with the MLOCK privilege.

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.

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

plock() returns the following values:

0

Successful completion.

-1

Failure. The requested operation is not performed. errno is set to indicate the error.

ERRORS

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 user with the MLOCK privilege.

EXAMPLES

The following call to plock() locks the calling process in memory:

plock(PROCLOCK);

STANDARDS CONFORMANCE

plock(): SVID2, SVID3, XPG2

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.