Linux c/c++如何从ThreadID中查找PID

Linux c/c++ How to find PID from a ThreadID

本文关键字:ThreadID 查找 PID c++ Linux      更新时间:2023-10-16

我目前正在编写一个FUSE应用程序,该应用程序应该实现基于进程的访问权限。我现在偶然发现,FUSE只提供ThreadID,而不提供ProcessID。现在,我需要找到不同进程的给定线程ID的PID(或线程组ID)。

我注意到proc-fs提供了基于线程的信息(即使ls/proc没有显示任何PID TID,它们仍然可以通过/proc/<TID>/访问),我可以通过这种方式询问/proc/lt;TID>Tgid的状态,但由于我的FUSE应用程序每秒将提供数百个请求,我觉得这可能不是最好的方式。

有人知道这里要使用的系统调用或gettgid(tid)形式的函数吗?

我认为您需要使用/proc/自己获取这些信息。我找不到任何可以满足您需要的syscall或posix函数/proc/应该很快,因为它不是磁盘上真正的fs,我认为这是唯一的选择。