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


       prctl - operations on a process


       #include <sys/prctl.h>

       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),
       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.


       The prctl() system call was introduced in Linux 2.1.57.