call gettid witin glibc

Я работаю в 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

6
задан osgx 8 March 2012 в 15:08
поделиться