get_robust_list(2) System Calls Manual get_robust_list(2) get_robust_list, set_robust_list - / (futexes) LIBRARY Standard C library (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 *len_ptr); long syscall(SYS_set_robust_list, struct robust_list_head *head, size_t len); Note: glibc provides no wrappers for these system calls, necessitating the use of syscall(2). . : . set_robust_list(). get_robust_list(). , - execve(2), , . : FUTEX_OWNER_DIED futex(2) FUTEX_WAKE , . get_robust_list() , pid. pid 0, . , head_ptr. , **head_ptr, len_ptr. get_robust_list() ptrace PTRACE_MODE_READ_REALCREDS; ptrace(2). set_robust_list() , . head . len sizeof(*head). set_robust_list() get_robust_list() . pthread_setcancelstate() : EINVAL len sizeof(struct robust_list_head). get_robust_list() : EFAULT head. EPERM pid CAP_SYS_PTRACE. ESRCH pid . Linux 2.6.17. These system calls are not needed by normal applications. ; , , , glibc. , , , . Linux 2.6.28 execve(2). , , , clone(2) gettid(2). . futex(2), pthread_mutexattr_setrobust(3) Documentation/robust-futexes.txt Documentation/robust-futex-ABI.txt Linux Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov ; GNU 3 , . . , , . Linux man-pages 6.06 31 2023 . get_robust_list(2)