使用Linux Redhat7编写代码的时候,需要使用 gettid() 函数获取线程ID。使用 man gettid 命令查看了一下,gettid()函数的头文件是 #include<sys/types.h>, 但是导入了该头文件以后,再使用 gettid() 函数程序在gcc编译的时候,仍然会报 undefined reference to 'gettid'。

  网上查阅资料以后发现,需要使用 syscall 的方式进行调用。所以可以用如下方式进行一个简单的封装,这样就可以使用 gettid()了

#include <unistd.h>
#include <sys/syscall.h>
#define gettid() syscall(__NR_gettid)

  或者也可以使用 pthread_self(),该函数可以获取当前线程的线程ID。

  具体为什么要这样处理的原因还不太清楚,既然可以查到函数,并且也导入了相应的头文件,但是还是使用失败,具体原因后续查阅了解后再做补充。

Linux下获取线程ID tid的方法的更多相关文章

  1. 在Windows及Linux下获取毫秒级运行时间的方法

    在Windows下获取毫秒级运行时间的方法 头文件:<Windows.h> 函数原型: /*获取时钟频率,保存在结构LARGE_INTEGER中***/ WINBASEAPI BOOL W ...

  2. Linux下获取线程TID的方法——gettid()

    (转载)http://blog.csdn.net/delphiwcdj/article/details/8476547 如何获取进程的PID(process ID)? 可以使用: #include & ...

  3. Linux下获取线程TID的方法

    如何获取进程的PID(process ID)? 可以使用: #include <unistd.h> pid_t getpid(void); 通过查看头文件说明,可以得到更详细的信息: fi ...

  4. linux下获取线程号

    #include <sys/syscall.h> pid_t gettid() { return syscall(SYS_gettid); }

  5. Linux下查看线程数的几种方法汇总

    Linux下查看线程数的几种方法汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux下查看某个进程的线程数量 pstree命令以树状图显示进程间的关系(display ...

  6. 12.2 linux下的线程

    什么是线程: 在一个程序里的一个执行路线就叫做线程(thread),更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程 进程与线程: 进程是资源竞争的基本单位 线程是程序执 ...

  7. linux下获取占用CPU资源最多的10个进程

    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...

  8. linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:

    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...

  9. Linux下进程通信的八种方法

    Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量 ...

  10. Linux 下获取LAN中指定IP的网卡的MAC(物理地址)

    // all.h// 2005/06/20,a.m. wenxy #ifndef _ALL_H#define _ALL_H #include <memory.h>#include < ...

随机推荐

  1. CF1137F Matches Are Not a Child's Play 题解

    以最后被删去的点为根,这样子不会存在从父亲然后删掉某个点,儿子的删除顺序一定比父亲前. 记每个点子树中的最大值为 \(f_x\),那么一个点的排名,首先就需要加上 \(<f_x\) 的所有值,记 ...

  2. react 04 生命周期

    生命周期的三个状态 mounting  : 组件插入到dom updating: 将数据更新到dom unmounting:将组件移除dom 生命周期的钩子函数 ComponentWillMount: ...

  3. charles证书安装-客户端证书

    1.iOS设置教程: 1)wifi中配置代理 2)浏览器中输入chls.pro/ssl,进行证书下载 3)证书下载成功后,设置--通用--描述文件–安装刚下载的证书 4)设置--通用--关于本机--证 ...

  4. openssl用法详解 【转】

    原文: http://www.178linux.com/48764 OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 l ...

  5. 记录 mysql修改密码报错问题 (ERROR 1054 (42S22): Unknown column 'password' in 'field list')

    报错如图: 查了相关文档 MySQL官网手册表示MySQL5.7版本后,password这个字段被改成 authentication_string, 命令修改如下: update user set a ...

  6. iOS开发 性能优化

    1.快 2.稳 3.省 4.小

  7. 1163:阿克曼(Ackmann)函数

    我的博客: https://www.cnblogs.com/haoningdeboke-2022/ 1163:阿克曼(Ackmann)函数 时间限制: 1000 ms         内存限制: 65 ...

  8. vue中的Swiper使用slideTo提示no function

    参考官网资料解决:

  9. idea-lombok使用

    一.添加 lombok 插件 file -- setting  -- plugins - 输入 Lombok 搜索,进行安装 二.引入依赖 <dependency> <groupId ...

  10. 【MySQL】MySQL时区问题、数据库时间相差8小时问题解决

    解决:修改MySQL系统时区,改为东8区. 在命令行界面或者可视化工具下(如:Navicat)依次运行以下命令. 1.查询当前系统时间 select now(); 2.检查MySQL系统时区 show ...