prctl(2) — Linux manual page

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | STANDARDS | HISTORY | CAVEATS | SEE ALSO | COLOPHON

prctl(2)                   System Calls Manual                  prctl(2)

NAME         top

       prctl - operations on a process or thread

LIBRARY         top

       Standard C library (libc, -lc)

SYNOPSIS         top

       #include <linux/prctl.h>  /* Definition of PR_* constants */
       #include <sys/prctl.h>

       int prctl(int op, ...);

DESCRIPTION         top

       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         top

       On success, a nonnegative value is returned.  On error, -1 is
       returned, and errno is set to indicate the error.

ERRORS         top

       EINVAL The value of op is not recognized, or not supported on
              this system.

       EINVAL An unused argument is nonzero.

VERSIONS         top

       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         top

       Linux.

HISTORY         top

       Linux 2.1.57, glibc 2.0.6

CAVEATS         top

       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         top

       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)

COLOPHON         top

       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.9.1.tar.gz
       fetched from
       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
       2024-06-26.  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.9.1          2024-06-01                       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_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_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)