从不同的进程获取线程名称

时间:2014-07-02 10:07:42

标签: multithreading pthreads qnx qnx-neutrino

我们在qnx环境中为我们的应用程序运行了不同的exes。 每个exe inturn都有几个线程。

现在我想从特定进程获取所有进程的所有线程的线程名称。 例如:我们有10个进程,每个进程有10个线程。所以线程的总数是100。 我必须从这些过程中的一个获得所有这100个线程名称(即,过程号5)

我尝试使用pthread_getname_np()

pthread_getname_np(status.tid, thredtable[threadTabIndex].ThreadName, 100);

但这会返回正在执行的当前进程的线程名称。 例如:由于当前正在执行,因此只返回5号进程的线程。

我有所有进程和线程的进程ID和线程ID。我现在想获得这些的线程名称。

任何建议都会非常有用。

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用__getset_thread_name解决了这个问题。

extern int  __getset_thread_name(pid_t __pid, pthread_t __thr, const char *__newname,
                                  int __newname_len, char *__prevname, int __prevname_len);

此方法在pthread.h中定义