Я работаю в glibc, и мне нужно получить идентификатор текущей темы. Для этого я использую syscall(SYS_gettid);
Проблема: я вынужден включить bits/syscall.h
вместо идеального случая i.e sys/syscall.h
.call gettid witin glibc
sys/syscall.h
Внутренние звонки bits/syscall.h
, но это обернуто #ifndef _LIBC
макросами.
#ifndef _LIBC
/* The Linux kernel header file defines macros `__NR_<name>', but some
programs expect the traditional form `SYS_<name>'. So in building libc
we scan the kernel's list and produce <bits/syscall.h> with macros for
all the `SYS_' names. */
# include <bits/syscall.h>
#endif
также bits/syscall.h
утверждает, что "Никогда не используйте бит/syscall.h непосредственно, включают SYS/syscall.h вместо этого."
Поскольку _LIBC
будет определен в моем случае, так как я пишу код непосредственно в malloc.c
, , пожалуйста, предложите мне, как я могу это преодолеть.
Спасибо, Капил
Почему бы вам просто не использовать '__NR_gettid'? –