《Linux多线程服务端编程》建议使用gettid(2)
系统调用的返回值作为线程id。
写了个测试:
void * threadFunc(void *arg)
{
pid_t tid = gettid();
//...
}
编译出现错误:undefined reference to gettid()
网上查了一下,需要使用syscall的方式进行调用,于是简单封装了一蛤
pid_t gettid(void)
{
return syscall(__NR_gettid);
}
参考:
1.http://blog.csdn.net/delphiwcdj/article/details/8476547
2.http://stackoverflow.com/questions/9565177/call-gettid-witin-glibc
3.http://blog.csdn.net/xsckernel/article/details/8543377