2017-01-09 5 views
0

Я получил очень небольшую программу, чтобы проверить нить связанные вещи:ubuntu не может найти функцию «gettid»?

#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/типов. Нет проблем, когда я скомпилировать его, нет ошибки:

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. Как это исправить?

+0

Возможный дубликат [C++ gettid() не был объявлен в этой области] (http://stackoverflow.com/questions/30680550/c-gettid-was-not-declared-in-this-scope) – ks1322

ответ

2

use: pid_t tid = syscall (SYS_gettid); , так как это нельзя назвать непосредственно.

 Смежные вопросы

  • Нет связанных вопросов^_^