进程内运行线程的名称

时间:2013-11-30 12:23:50

标签: c++ linux multithreading shell

我有一个父进程,为每个客户端创建一个线程,如下所示:

pthread_create(&thread, NULL, interact, bundle);


然后我重命名每个踏板:

pthread_setname_np(thread, "some name");

在我的linux终端中运行命令“ps uH p”,我将获得当前在父进程中运行的线程详细信息,但它不提供我刚刚分配给它们的名称。


是否有任何特定的命令来运行和获取线程名称?

1 个答案:

答案 0 :(得分:1)

正如pthread_setname_np中所暗示的那样,新名称可以ps格式说明符comm访问,但不能argscommand(这是什么通常打印):

ps H -C <cmd name> -o 'pid tid args comm'

说明了差异(改编自man页面)。但是,我无法找到明确讨论这个问题的好文档。

此处,<cmd name>是程序二进制文件的名称。