prctl(2) | System Calls Manual | prctl(2) |
NAME¶
prctl - operations on a process or thread
LIBRARY¶
Standard C library (libc, -lc)
SYNOPSIS¶
#include <linux/prctl.h> /* Definition of PR_* constants */ #include <sys/prctl.h>
int prctl(int op, ...);
DESCRIPTION¶
prctl() manipulates various aspects of the behavior of the calling thread or process.
prctl() is called with a first argument describing what to do, and further arguments with a significance depending on the first one. The first argument can be:
- PR_CAP_AMBIENT
- PR_CAPBSET_READ
- PR_CAPBSET_DROP
- PR_SET_CHILD_SUBREAPER
- PR_GET_CHILD_SUBREAPER
- PR_SET_DUMPABLE
- PR_GET_DUMPABLE
- PR_SET_ENDIAN
- PR_GET_ENDIAN
- PR_SET_FP_MODE
- PR_GET_FP_MODE
- PR_SET_FPEMU
- PR_GET_FPEMU
- PR_SET_FPEXC
- PR_GET_FPEXC
- PR_SET_IO_FLUSHER
- PR_GET_IO_FLUSHER
- PR_SET_KEEPCAPS
- PR_GET_KEEPCAPS
- PR_MCE_KILL
- PR_MCE_KILL_GET
- PR_SET_MM
- PR_SET_VMA
- PR_MPX_ENABLE_MANAGEMENT
- PR_MPX_DISABLE_MANAGEMENT
- PR_SET_NAME
- PR_GET_NAME
- PR_SET_NO_NEW_PRIVS
- PR_GET_NO_NEW_PRIVS
- PR_PAC_RESET_KEYS
- PR_SET_PDEATHSIG
- PR_GET_PDEATHSIG
- PR_SET_PTRACER
- PR_SET_SECCOMP
- PR_GET_SECCOMP
- PR_SET_SECUREBITS
- PR_GET_SECUREBITS
- PR_GET_SPECULATION_CTRL
- PR_SET_SPECULATION_CTRL
- PR_SVE_SET_VL
- PR_SVE_GET_VL
- PR_SET_SYSCALL_USER_DISPATCH
- PR_SET_TAGGED_ADDR_CTRL
- PR_GET_TAGGED_ADDR_CTRL
- PR_TASK_PERF_EVENTS_DISABLE
- PR_TASK_PERF_EVENTS_ENABLE
- PR_SET_THP_DISABLE
- PR_GET_THP_DISABLE
- PR_GET_TID_ADDRESS
- PR_SET_TIMERSLACK
- PR_GET_TIMERSLACK
- PR_SET_TIMING
- PR_GET_TIMING
- PR_SET_TSC
- PR_GET_TSC
- PR_SET_UNALIGN
- PR_GET_UNALIGN
- PR_GET_AUXV
- PR_SET_MDWE
- PR_GET_MDWE
RETURN VALUE¶
On success, a nonnegative value is returned. On error, -1 is returned, and errno is set to indicate the error.
ERRORS¶
VERSIONS¶
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 op, int arg2, int arg3);
and operations 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, and so on.
STANDARDS¶
Linux.
HISTORY¶
Linux 2.1.57, glibc 2.0.6
CAVEATS¶
The prototype of the libc wrapper uses a variadic argument list. This makes it necessary to pass the arguments with the right width. When passing numeric constants, such as 0, use a suffix: 0L.
Careless use of some prctl() operations can confuse the user-space run-time environment, so these operations should be used with care.
SEE ALSO¶
signal(2), PR_CAP_AMBIENT(2const), PR_CAPBSET_READ(2const), PR_CAPBSET_DROP(2const), PR_SET_CHILD_SUBREAPER(2const), PR_GET_CHILD_SUBREAPER(2const), PR_SET_DUMPABLE(2const), PR_GET_DUMPABLE(2const), PR_SET_ENDIAN(2const), PR_GET_ENDIAN(2const), PR_SET_FP_MODE(2const), PR_GET_FP_MODE(2const), PR_SET_FPEMU(2const), PR_GET_FPEMU(2const), PR_SET_FPEXC(2const), PR_GET_FPEXC(2const), PR_SET_IO_FLUSHER(2const), PR_GET_IO_FLUSHER(2const), PR_SET_KEEPCAPS(2const), PR_GET_KEEPCAPS(2const), PR_MCE_KILL(2const), PR_MCE_KILL_GET(2const), PR_SET_MM(2const), PR_SET_VMA(2const), PR_MPX_ENABLE_MANAGEMENT(2const), PR_MPX_DISABLE_MANAGEMENT(2const), PR_SET_NAME(2const), PR_GET_NAME(2const), PR_SET_NO_NEW_PRIVS(2const), PR_GET_NO_NEW_PRIVS(2const), PR_PAC_RESET_KEYS(2const), PR_SET_PDEATHSIG(2const), PR_GET_PDEATHSIG(2const), PR_SET_PTRACER(2const), PR_SET_SECCOMP(2const), PR_GET_SECCOMP(2const), PR_SET_SECUREBITS(2const), PR_GET_SECUREBITS(2const), PR_SET_SPECULATION_CTRL(2const), PR_GET_SPECULATION_CTRL(2const), PR_SVE_SET_VL(2const), PR_SVE_GET_VL(2const), PR_SET_SYSCALL_USER_DISPATCH(2const), PR_SET_TAGGED_ADDR_CTRL(2const), PR_GET_TAGGED_ADDR_CTRL(2const), PR_TASK_PERF_EVENTS_DISABLE(2const), PR_TASK_PERF_EVENTS_ENABLE(2const), PR_SET_THP_DISABLE(2const), PR_GET_THP_DISABLE(2const), PR_GET_TID_ADDRESS(2const), PR_SET_TIMERSLACK(2const), PR_GET_TIMERSLACK(2const), PR_SET_TIMING(2const), PR_GET_TIMING(2const), PR_SET_TSC(2const), PR_GET_TSC(2const), PR_SET_UNALIGN(2const), PR_GET_UNALIGN(2const), PR_GET_AUXV(2const), PR_SET_MDWE(2const), PR_GET_MDWE(2const), core(5)
2024-06-01 | Linux man-pages 6.9.1 |