저는 glibc에서 작업 중이며 현재 스레드의 ID를 가져와야합니다. 이를 위해 syscall(SYS_gettid);
문제는 이상적인 경우 대신 bits/syscall.h
을 포함해야합니다 (예 : sys/syscall.h
).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 포함"한다고
내 경우에는 malloc.c
에 코드를 직접 작성하므로 _LIBC
이 정의 될 예정이므로이 문제를 극복 할 수있는 방법을 제안하십시오.
감사합니다, 카필
왜 '__NR_gettid'를 사용하지 않으시겠습니까? –