Provided by: manpages-dev_3.01-1_all
prctl - operations on a process
int prctl(int option, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5);
prctl() is called with a first argument describing what to do (with
values defined in <linux/prctl.h>), and further parameters with a
significance depending on the first one. The first argument can be:
(since Linux 2.1.57) Set the parent process death signal of the
calling process to arg2 (either a signal value in the range
1..maxsig, or 0 to clear). This is the signal that the calling
process will get when its parent dies. This value is cleared
upon a fork(2).
(Since Linux 2.3.15) Read the current value of the parent
process death signal into the (int *) arg2.
(Since Linux 2.3.20) Set the state of the flag determining
whether core dumps are produced for this process upon delivery
of a signal whose default behavior is to produce a core dump.
(Normally this flag is set for a process by default, but it is
cleared when a set-user-ID or set-group-ID program is executed
and also by various system calls that manipulate process UIDs
and GIDs). In kernels up to and including 2.6.12, arg2 must be
either 0 (process is not dumpable) or 1 (process is dumpable).
Between kernels 2.6.13 and 2.6.17, the value 2 was also
permitted, which caused any binary which normally would not be
dumped to be dumped readable by root only; for security reasons,
this feature has been removed. (See also the description of
/proc/sys/fs/suid_dumpable in proc(5).)
(Since Linux 2.3.20) Return (as the function result) the current
state of the calling process’s dumpable flag.
(Since Linux 2.2.18) Set the state of the process’s "keep
capabilities" flag, which determines whether the process’s
effective and permitted capability sets are cleared when a
change is made to the process’s user IDs such that the process’s
real UID, effective UID, and saved set-user-ID all become non-
zero when at least one of them previously had the value 0. (By
default, these credential sets are cleared). arg2 must be
either 0 (capabilities are cleared) or 1 (capabilities are
(Since Linux 2.2.18) Return (as the function result) the current
state of the calling process’s "keep capabilities" flag.
(Since Linux 2.6.0-test4) Set whether to use (normal,
traditional) statistical process timing or accurate timestamp
based process timing, by passing PR_TIMING_STATISTICAL or
PR_TIMING_TIMESTAMP to arg2.
(Since Linux 2.6.0-test4) Return (as the function result) which
process timing method is currently in use.
(Since Linux 2.6.9) Set the process name for the calling process
(Since Linux 2.6.11) Get the process name for the calling
process from arg2.
(Since Linux 2.6.18, PowerPC only) Return the endian-ness of the
(Since Linux 2.6.18, PowerPC only) Set the endian-ness of the
calling process to the value given in arg2, which should be one
of the following: PR_ENDIAN_BIG, PR_ENDIAN_LITTLE, or
PR_ENDIAN_PPC_LITTLE (PowerPC pseudo little endian).
(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15;
PowerPC, since Linux 2.6.18; Alpha, since Linux 2.6.22) Set
unaligned access control bits to arg2. Pass PR_UNALIGN_NOPRINT
to silently fix up unaligned user accesses, or PR_UNALIGN_SIGBUS
to generate SIGBUS on unaligned user access.
(see PR_SET_UNALIGN for information on versions and
architectures) Get unaligned access control bits from arg2.
(Since Linux 2.4.18, 2.5.9, only on ia64) Set floating-point
emulation control bits to arg2. Pass PR_FPEMU_NOPRINT to
silently emulate fp operations accesses, or PR_FPEMU_SIGFPE to
not emulate fp operations and send SIGFPE instead.
(Since Linux 2.4.18, 2.5.9, only on ia64) Get floating-point
emulation control bits from arg2.
(Since Linux 2.4.21, 2.5.32, only on PowerPC) Set floating-point
exception mode to arg2. Pass PR_FP_EXC_SW_ENABLE to use FPEXC
for FP exception enables, PR_FP_EXC_DIV for floating point
divide by zero, PR_FP_EXC_OVF for floating point overflow,
PR_FP_EXC_UND for floating point underflow, PR_FP_EXC_RES for
floating point inexact result, PR_FP_EXC_INV for floating point
invalid operation, PR_FP_EXC_DISABLED for FP exceptions
disabled, PR_FP_EXC_NONRECOV for async non-recoverable exception
mode, PR_FP_EXC_ASYNC for async recoverable exception mode,
PR_FP_EXC_PRECISE for precise exception mode.
(Since Linux 2.4.21, 2.5.32, only on PowerPC) Get floating-point
exception mode from arg2.
PR_GET_DUMPABLE and PR_GET_KEEPCAPS return 0 or 1 on success. All
other option values return 0 on success. On error, -1 is returned, and
errno is set appropriately.
EINVAL The value of option is not recognized, or it is PR_SET_PDEATHSIG
and arg2 is not zero or a signal number.
The prctl() system call was introduced in Linux 2.1.57.
This call is Linux-specific. IRIX has a prctl() system call (also
introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture),
ptrdiff_t prctl(int option, int arg2, int arg3);
and options to get the maximum number of processes per user, get the
maximum number of processors the calling process can use, find out
whether a specified process is currently blocked, get or set the
maximum stack size, etc.
This page is part of release 3.01 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.