在OpenSuse 64 v12.3上调用gettid函数(已经加上头文件sys/types.h),但是gcc -Werror给出如下错误提示:
error: implicit declaration of function 'gettid' [-Werror=implicit-function-declaration]
而man 2 gettid结果如下:
NAME
gettid - get thread identification
SYNOPSIS
#include <sys/types.h>
pid_t gettid(void);
我也调用了上面的头文件,解决不了任何问题,在stackoverflow上看到一个程序使用以下头文件:
#include <unistd.h>
#include <sys/syscall.h>
#define gettid() syscall(__NR_gettid)
问题解决。
但懂得内核的朋友能否给我解释下为什么有上面的错误?