2017-01-09 4 views
0

ich ein sehr kleines Programm haben Thread bezogenes zu testen:ubuntu kann die Funktion "gettid" nicht finden?

#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; 
} 

Im Editor vim, konzentriere ich mich auf 'gettid' und Shift-K, die man-Seite von gettid sagt, dass es innerhalb sys/types. Kein Problem, wenn ich es kompilieren, gibt es Fehler:

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(); 
       ^

ich mit neuen gcc-Version auf ubuntu1604 bin. Wie man es repariert?

+0

Mögliches Duplikat von [C++ gettid() wurde in diesem Bereich nicht deklariert] (http://stackoverflow.com/questions/30680550/c-gettid-was-not-declared-in-this-scope) – ks1322

Antwort

2

verwenden: pid_t tid = syscall (SYS_gettid); wie dies nicht direkt aufgerufen werden kann.

Verwandte Themen