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 *len_ptr); long syscall(SYS_set_robust_list, struct robust_list_head *head, size_t len); : glibc , 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. . ; , , , 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 , Kirill Rekhov ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () <>. Linux 6.9.1 2 2024 . get_robust_list(2)