当前位置首页 > Linux知识

Linux下获取线程IDtid的方法

阅读次数:298 次  来源:admin  发布时间:

使用Linux Redhat7编写代码的时候,需要使用 gettid() 函数获取线程ID。使用 man gettid 命令查看了一下,gettid()函数的头文件是 #include<sys/types.h>, 但是导入了该头文件以后,再使用 gettid() 函数程序在gcc编译的时候,仍然会报 undefined reference to \'gettid\'。

网上查阅资料以后发现,需要使用 syscall 的方式进行调用。所以可以用如下方式进行一个简单的封装,这样就可以使用 gettid()了

#include <unistd.h>
#include <sys/syscall.h>
#define gettid() syscall(__NR_gettid)

或者也可以使用 pthread_self(),该函数可以获取当前线程的线程ID。

具体为什么要这样处理的原因还不太清楚,既然可以查到函数,并且也导入了相应的头文件,但是还是使用失败,具体原因后续查阅了解后再做补充。

上一篇:Linux(CentOS6.3)设置VNC远程桌面连接
下一篇:ApachePOI使用详解