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