Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 进程内正在运行的线程的名称_C++_Linux_Multithreading_Shell - Fatal编程技术网

C++ 进程内正在运行的线程的名称

C++ 进程内正在运行的线程的名称,c++,linux,multithreading,shell,C++,Linux,Multithreading,Shell,我有一个父进程,它为每个客户端创建一个线程,如下所示: pthread_create(&thread, NULL, interact, bundle); 然后,我将每个踏板重命名为: pthread_setname_np(thread, "some name"); 在我的linux终端中运行命令“ps-uH-p”,我将获得当前在父进程中运行的线程详细信息,但它没有提供我刚才分配给它们的名称 是否有任何特定的命令来运行和获取线程名称?正如pthread\u setname\u np

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

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

然后,我将每个踏板重命名为:

pthread_setname_np(thread, "some name");
在我的linux终端中运行命令“ps-uH-p”,我将获得当前在父进程中运行的线程详细信息,但它没有提供我刚才分配给它们的名称



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

正如
pthread\u setname\u np
中所暗示的那样,新名称可以作为
ps
格式说明符
comm
访问,但不能作为
args
command
访问(通常是打印的):

ps H-C-o'pid tid args comm'
说明差异(改编自
man
页面)。不过,我还没有找到一份明确讨论这一点的好文档


这里,
是程序二进制文件的名称。

正如
pthread\u setname\u np
中所暗示的,新名称可以作为
ps
格式说明符
comm
访问,但不能作为
args
命令
访问(通常是打印的):

ps H-C-o'pid tid args comm'
说明差异(改编自
man
页面)。不过,我还没有找到一份明确讨论这一点的好文档


这里,
是程序二进制文件的名称。

@Mat感谢您的回复。不幸的是,我们不能在代码中使用pthread_getname_np,我们必须通过Linux shell命令获取线程名称。请阅读手册页。@Mat,我找到了您提到的示例。谢谢你的帮助response@Mat谢谢你的回复。不幸的是,我们不能在代码中使用pthread_getname_np,我们必须通过Linux shell命令获取线程名称。请阅读手册页。@Mat,我找到了您提到的示例。谢谢你的回复。因此,如果我将“threadname”替换为我的assign name并运行上面的命令,我应该得到线程的pid、tid、args和comm属性?如上所述:它应该是二进制文件的原始名称。我使用您和Mat的指示使它工作。再次感谢汉克斯。因此,如果我将“threadname”替换为我的assign name并运行上面的命令,我应该得到线程的pid、tid、args和comm属性?如上所述:它应该是二进制文件的原始名称。我使用您和Mat的指示使它工作。再次感谢
ps H -C <cmd name> -o 'pid tid args comm'