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

#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编辑器中,我主要关注“gettid”和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版本。怎么解决?

最佳答案

用法:pid_t tid=syscall(SYS_gettid);
因为这不能直接调用。

关于c++ - ubuntu找不到“gettid”功能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41550410/

10-11 17:05