ubuntu无法找到" gettid"功能?

时间:2017-01-09 14:40:00

标签: c++ linux compilation pthreads posix

我有一个非常小的程序来测试线程相关的东西:

#include<unistd.h>
#include<sys/types.h>
#include<stdio.h>
int main()
{
    pid_t pid=getpid();
    pid_t tid=gettid();
    printf("%d,%d\n",pid,tid);
    return 0;
}

在vim编辑器中,我专注于&#39; gettid&#39;和Shift-K一起,gettid的手册页说它在sys / types里面。没问题,当我编译它时,出现了错误:

g++ mythread.cpp 
mythread.cpp: In function ‘int main()’:
mythread.cpp:7:22: error: ‘gettid’ was not declared in this scope
     pid_t tid=gettid();
                  ^

我在ubuntu1604上使用新的gcc版本。如何解决?

1 个答案:

答案 0 :(得分:2)

使用:pid_t tid = syscall(SYS_gettid); 因为这不能直接打电话。