0

我们在 qnx 环境中为我们的应用程序运行了不同的 exe。每个 exe 又具有多个线程。

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

我尝试使用 pthread_getname_np()

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

但这会返回我正在执行的当前进程的线程名称。例如:它返回我只有进程号 5 的线程,因为这是当前正在执行的。

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

任何建议都会非常有帮助。

提前致谢。

4

1 回答 1

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 中定义

于 2014-07-04T08:54:19.793 回答