Provided by: manpages-dev_2.17-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
current process to arg2 (either a signal value in the range
1..maxsig, or 0 to clear). This is the signal that the current
process will get when its parent dies. This value is cleared
upon a fork().
(since Linux 2.3.15) Read the current value of the parent
process death signal into the (int *) arg2.
(Since Linux 2.4) Set the state of the flag determining whether
core dumps are produced for this process upon delivery of a
signal whose default behaviour 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).
Since kernel 2.6.13, the value 2 is also permitted; this causes
any binary which normally would not be dumped to be dumped
readable by root only. (See also the description of
/proc/sys/fs/suid_dumpable in proc(5).)
(Since Linux 2.4) Return (as the function result) the current
state of the calling process’s dumpable flag.
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 kept).
Return (as the function result) the current state of the calling
process’s "keep capabilities" flag.
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.
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.
The prctl() system call was introduced in Linux 2.1.57.