Linux c / c ++ Comment trouver le PID à partir d’un ThreadID

J’écris actuellement une application FUSE qui devrait implémenter des droits d’access basés sur des processus. Je tombe maintenant sur le fait que FUSE fournit uniquement le ThreadID, pas le ProcessID. Maintenant, je dois trouver le PID (ou l’ID de groupe de threads) pour l’ID de thread donné d’un processus différent.

J’ai remarqué que le proc fs fournit des informations basées sur les threads (même un ls / proc ne montre aucun TID PID auquel on peut toujours accéder via / proc / /) de cette manière, je peux demander à / proc / / status à propos du Tgid, mais comme mon application FUSE servira des centaines de requêtes par seconde, j’ai le sentiment que ce n’est peut-être pas la meilleure solution ici.

Est-ce que quelqu’un connaît un appel système ou une fonction de la forme gettgid (tid) à utiliser ici?

Je pense que vous devez utiliser / proc / pour obtenir cette information vous-même. Je ne trouve aucune fonction syscall ou posix qui fasse ce dont vous avez besoin. / proc / devrait être rapide car ce n’est pas un vrai fs sur disque et je pense que c’est le seul choix.