Я работаю в glibc, и мне нужно получить идентификатор текущего потока. Для этого я использую
syscall (SYS_gettid);
Проблема в том, что я вынужден включить бит / syscall.h
вместо идеального случая, то есть sys / syscall.h
.
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
также бит / syscall.h
утверждает, что
«Никогда не используйте биты / syscall.h напрямую; вместо этого включите sys / syscall.h».
Поскольку _LIBC
будет определен в моем случае, поскольку я пишу код непосредственно в malloc.c
,
пожалуйста, подскажите, как я могу это преодолеть.
Спасибо, Kapil