我有一个父进程,它像这样为每个客户端创建一个线程:
pthread_create(&thread, NULL, interact, bundle);
然后我将每个踏板重命名为:
pthread_setname_np(thread, "some name");
在我的 linux 终端中运行命令“ps uH p”,我将获得当前在父进程中运行的线程详细信息,但它不提供我刚刚分配给它们的名称。
是否有任何特定的命令来运行和获取线程名称?
最佳答案
如 pthread_setname_np
中所暗示, 新名称可访问为 ps
格式说明符 comm
, 但不是 args
或 command
(这是通常打印的内容):
ps H -C <cmd name> -o 'pid tid args comm'
说明了差异(改编自 man
页面)。不过,我还没有找到明确讨论这个问题的好文档。
在这里,<cmd name>
是程序二进制文件的名称。
关于c++ - 进程内运行线程的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300189/