c++ - 进程内运行线程的名称

标签 c++ linux multithreading shell

我有一个父进程,它像这样为每个客户端创建一个线程:

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


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

pthread_setname_np(thread, "some name");

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


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

最佳答案

pthread_setname_np 中所暗示, 新名称可访问为 ps格式说明符 comm , 但不是 argscommand (这是通常打印的内容):

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

说明了差异(改编自 man 页面)。不过,我还没有找到明确讨论这个问题的好文档。

在这里,<cmd name>是程序二进制文件的名称。

关于c++ - 进程内运行线程的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300189/

相关文章:

c++ - Xcode:多个项目,不止一个主要可执行文件

linux - 在 linux 上加入 AVCHD .mts 文件

python - 如何安装pysqlite?

java - 大规模文档共现分析

c++ - STL reverse_iterator 错误

c++ - 我应该丢弃 boost::python::exec 的返回值吗?

c++ - 网络应用程序有多少传入缓冲区?

linux - glibc 函数的 ELF 弱导入/回退 stub

java - 短语 "class object"在线程同步上下文中指的是什么?

c# - 新线程中的 WebBrowser 控件