PRCTL(2) Linux Programmer's Manual PRCTL(2)
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 pro-
duced for this process upon delivery of a signal whose default behaviour is to pro-
duce a core dump. (Normally this flag is set for a process by default, but it is
cleared when a set-UID or set-GID program is executed and also by various system
calls that manipulate process UIDs and GIDs). arg2 must be either 0 (process is
not dumapable) or 1 (process is dumpable).
(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 all of the process's real, effective, and
saved set user IDs 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
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), with prototype
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., etc.
The prctl() systemcall was introduced in Linux 2.1.57. There is no prctl() library call
Linux 2.4.18 2002-06-27 PRCTL(2)