Provided by:
manpages-dev_2.77-1_all 
NAME
prctl - operations on a process
SYNOPSIS
#include <sys/prctl.h>
int prctl(int option, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5);
DESCRIPTION
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:
PR_SET_PDEATHSIG
(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).
PR_GET_PDEATHSIG
(Since Linux 2.3.15) Read the current value of the parent
process death signal into the (int *) arg2.
PR_SET_DUMPABLE
(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).)
PR_GET_DUMPABLE
(Since Linux 2.3.20) Return (as the function result) the current
state of the calling process’s dumpable flag.
PR_SET_KEEPCAPS
(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
nonzero 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).
PR_GET_KEEPCAPS
(Since Linux 2.2.18) Return (as the function result) the current
state of the calling process’s "keep capabilities" flag.
PR_SET_TIMING
(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.
PR_GET_TIMING
(Since Linux 2.6.0-test4) Return (as the function result) which
process timing method is currently in use.
PR_SET_NAME
(Since Linux 2.6.9) Set the process name for the calling process
to arg2.
PR_GET_NAME
(Since Linux 2.6.11) Get the process name for the calling
process from arg2.
PR_GET_ENDIAN
(Since Linux 2.6.18, PowerPC only) Return the endian-ness of the
calling process.
PR_SET_ENDIAN
(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).
PR_SET_UNALIGN
(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.
PR_GET_UNALIGN
(see PR_SET_UNALIGN for information on versions and
architectures) Get unaligned access control bits from arg2.
PR_SET_FPEMU
(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.
PR_GET_FPEMU
(Since Linux 2.4.18, 2.5.9, only on ia64) Get floating-point
emulation control bits from arg2.
PR_SET_FPEXC
(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.
PR_GET_FPEXC
(Since Linux 2.4.21, 2.5.32, only on PowerPC) Get floating-point
exception mode from arg2.
RETURN VALUE
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.
ERRORS
EINVAL The value of option is not recognized, or it is PR_SET_PDEATHSIG
and arg2 is not zero or a signal number.
VERSIONS
The prctl() system call was introduced in Linux 2.1.57.
CONFORMING TO
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.
SEE ALSO
signal(2), core(5)
COLOPHON
This page is part of release 2.77 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/.