Provided by: manpages-dev_2.77-1_all bug

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/.