gettid() 编译问题

代码里用到的 gettid(),编译时有报错,说找不到对应的头文件。

根据 man gettid 里的说法,libc 并没有提供这个系统调用的包装:

NOTES
    Glibc does not provide a wrapper for this system call; call it using syscall(2).

    ...

所以在实际使用时,需要添加以下声明:

#include <sys/syscall.h>
#include <unistd.h>

#define gettid() syscall(SYS_gettid)

Read More: