get_robust_list(2) System Calls Manual get_robust_list(2) get_robust_list, set_robust_list - / (futexes) C (libc, -lc) #include /* struct robust_list_head */ #include /* SYS_* */ #include long syscall(SYS_get_robust_list, int pid, struct robust_list_head **head_ptr, size_t *sizep); long syscall(SYS_set_robust_list, struct robust_list_head *head, size_t size); : glibc , syscall(2). . : . set_robust_list(). get_robust_list(). , - execve(2), , . : FUTEX_OWNER_DIED futex(2) FUTEX_WAKE , . The get_robust_list() system call returns the head of the robust futex list of the thread whose thread ID is specified in pid. If pid is 0, the head of the list for the calling thread is returned. The list head is stored in the location pointed to by head_ptr. The size of the object pointed to by **head_ptr is stored in sizep. get_robust_list() ptrace PTRACE_MODE_READ_REALCREDS; ptrace(2). The set_robust_list() system call requests the kernel to record the head of the list of robust futexes owned by the calling thread. The head argument is the list head to record. The size argument should be sizeof(*head). set_robust_list() get_robust_list() . pthread_setcancelstate() : EINVAL size does not equal sizeof(struct robust_list_head). get_robust_list() : EFAULT head. EPERM pid CAP_SYS_PTRACE. ESRCH pid . Linux 2.6.17. . ; , , , glibc. , , , . Linux 2.6.28 execve(2). , , , clone(2) gettid(2). futex(2), pthread_mutexattr_setrobust(3) Documentation/robust-futexes.rst and Documentation/robust-futex-ABI.rst in the Linux kernel source tree () Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () . Linux man-pages 6.18 8 2026 . get_robust_list(2)