从 pthread_t 获得 PID 和 TID

原创
2017/11/24 10:37
阅读数 1.8K

pthread_t 其实是一个结构体指针,里面包含了 TID 和 PID,找出它的偏移量就行。在 Ubuntu 16.04.3 x64上测试通过。

int get_tid_from_pthread(pthread_t t)
{
	struct pthread_fake {
		void *nothing[90];
		pid_t tid;
	};

	struct pthread_fake* f = (struct pthread_fake*)t;
	return f->tid;
}

int get_pid_from_pthread(pthread_t t)
{
	struct pthread_fake {
		void *nothing[90];
		pid_t tid;
		pid_t pid;
	};

	struct pthread_fake* f = (struct pthread_fake*)t;
	return f->pid;
}
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部