今天寫了一個代碼需要輸出線程的id,結果發現我的環境中不支持gettid函數,經過查找資料,發現
https://blog.csdn.net/yun2205446823/article/details/50850058
這篇文章裏有解決辦法
要點如下
#define _GNU_SOURCE //不加這個編譯會報錯,原因目前不清楚
#include <unistd.h>
#include <sys/syscall.h> /* For SYS_xxx definitions */
使用的時候寫
printf("tid : %ld\n",syscall(SYS_gettid)); //注意格式符是 ld 不是d,因爲我的環境裏tid_t的類型是long