| NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | STANDARDS | HISTORY | CAVEATS | SEE ALSO | COLOPHON | |
|  | 
prctl(2)                   System Calls Manual                   prctl(2)
       prctl - operations on a process or thread
       Standard C library (libc, -lc)
       #include <linux/prctl.h>  /* Definition of PR_* constants */
       #include <sys/prctl.h>
       int prctl(int op, ...);
       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
       PR_RISCV_SET_ICACHE_FLUSH_CTX
       PR_FUTEX_HASH
       On success, a nonnegative value is returned.  On error, -1 is
       returned, and errno is set to indicate the error.
       EINVAL The value of op is not recognized, or not supported on this
              system.
       EINVAL An unused argument is nonzero.
       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.
       Linux.
       Linux 2.1.57, glibc 2.0.6
       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.
       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), PR_RISCV_SET_ICACHE_FLUSH_CTX(2const),
       PR_FUTEX_HASH(2const), core(5)
       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report
       for this manual page, see
       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
       This page was obtained from the tarball man-pages-6.15.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2025-08-11.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to
       man-pages@man7.org
Linux man-pages 6.15            2025-06-11                       prctl(2)
Pages that refer to this page: capsh(1), setpriv(1), systemd-nspawn(1), arch_prctl(2), execve(2), _exit(2), fork(2), getpid(2), madvise(2), perf_event_open(2), PR_CAP_AMBIENT(2const), PR_CAP_AMBIENT_CLEAR_ALL(2const), PR_CAP_AMBIENT_IS_SET(2const), PR_CAP_AMBIENT_LOWER(2const), PR_CAP_AMBIENT_RAISE(2const), PR_CAPBSET_DROP(2const), PR_CAPBSET_READ(2const), PR_FUTEX_HASH(2const), PR_GET_AUXV(2const), PR_GET_CHILD_SUBREAPER(2const), PR_GET_DUMPABLE(2const), PR_GET_ENDIAN(2const), PR_GET_FPEMU(2const), PR_GET_FPEXC(2const), PR_GET_FP_MODE(2const), PR_GET_IO_FLUSHER(2const), PR_GET_MDWE(2const), PR_GET_NO_NEW_PRIVS(2const), PR_GET_SECCOMP(2const), PR_GET_SECUREBITS(2const), PR_GET_SPECULATION_CTRL(2const), PR_GET_TAGGED_ADDR_CTRL(2const), PR_GET_THP_DISABLE(2const), PR_GET_TID_ADDRESS(2const), PR_GET_TIMING(2const), PR_GET_TSC(2const), PR_GET_UNALIGN(2const), PR_MCE_KILL(2const), PR_MCE_KILL_CLEAR(2const), PR_MCE_KILL_GET(2const), PR_MCE_KILL_SET(2const), PR_MPX_ENABLE_MANAGEMENT(2const), PR_PAC_RESET_KEYS(2const), PR_RISCV_SET_ICACHE_FLUSH_CTX(2const), PR_SET_CHILD_SUBREAPER(2const), PR_SET_DUMPABLE(2const), PR_SET_ENDIAN(2const), PR_SET_FPEMU(2const), PR_SET_FPEXC(2const), PR_SET_FP_MODE(2const), PR_SET_IO_FLUSHER(2const), PR_SET_KEEPCAPS(2const), PR_SET_MDWE(2const), PR_SET_MM(2const), PR_SET_MM_ARG_START(2const), PR_SET_MM_AUXV(2const), PR_SET_MM_BRK(2const), PR_SET_MM_EXE_FILE(2const), PR_SET_MM_MAP(2const), PR_SET_MM_START_BRK(2const), PR_SET_MM_START_CODE(2const), PR_SET_MM_START_DATA(2const), PR_SET_MM_START_STACK(2const), PR_SET_NAME(2const), PR_SET_NO_NEW_PRIVS(2const), PR_SET_PDEATHSIG(2const), PR_SET_PTRACER(2const), PR_SET_SECCOMP(2const), PR_SET_SECUREBITS(2const), PR_SET_SPECULATION_CTRL(2const), PR_SET_SYSCALL_USER_DISPATCH(2const), PR_SET_TAGGED_ADDR_CTRL(2const), PR_SET_THP_DISABLE(2const), PR_SET_TIMERSLACK(2const), PR_SET_TIMING(2const), PR_SET_TSC(2const), PR_SET_UNALIGN(2const), PR_SET_VMA(2const), PR_SVE_GET_VL(2const), PR_SVE_SET_VL(2const), PR_TASK_PERF_EVENTS_DISABLE(2const), ptrace(2), seccomp(2), seccomp_unotify(2), syscalls(2), wait(2), capng_change_id(3), capng_lock(3), exit(3), lttng-ust(3), pthread_setname_np(3), sd_event_add_time(3), core(5), proc_pid(5), proc_pid_cmdline(5), proc_pid_comm(5), proc_pid_environ(5), proc_pid_maps(5), proc_pid_seccomp(5), proc_pid_status(5), proc_pid_timerslack_ns(5), proc_sys_fs(5), proc_sys_vm(5), systemd.exec(5), systemd-system.conf(5), systemd.timer(5), capabilities(7), credentials(7), environ(7), pid_namespaces(7), time(7), user_namespaces(7), mount.fuse3(8), systemd-coredump(8)