Tutorials Point


  Unix for Beginners
  Unix Shell Programming
  Advanced Unix
  Unix Useful References
  Unix Useful Resources
  Selected Reading

Copyright © 2014 by tutorialspoint



  Home     References     Discussion Forums     About TP  

prctl() - Unix, Linux System Call


previous next AddThis Social Bookmark Button


Advertisements

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:
TagDescription
PR_SET_PDEATHSIG
  (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().
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.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).)
PR_GET_DUMPABLE
  (Since Linux 2.4) Return (as the function result) the current state of the calling process’s dumpable flag.
PR_SET_KEEPCAPS
  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).
PR_GET_KEEPCAPS
  Return (as the function result) the current state of the calling process’s "keep capabilities" flag.

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

TagDescription
EINVAL The value of option is not recognized, or it is PR_SET_PDEATHSIG and arg2 is not zero or a signal number.

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.

AVAILABILITY

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

SEE ALSO



previous next Printer Friendly

Advertisements


  

Advertisements