如何在C 应用程序中打印所有线程的列表

How to print list of all threads in C++ application?

本文关键字:线程 列表 打印 应用程序      更新时间:2023-10-16

我如何在我的C 应用程序中打印线程列表(最好是名称)在Posix OS(例如Linux)?

您可以获取/proc/self/task的目录列表以获取线程ID列表。请注意,这是特定于Linux;不适合所有Posix。

您可以使用pthread_getname_np获取每个线程的名称。线程默认为程序名称。这是glibc特定函数;不适合所有POSIX甚至所有Linux。

做同样事情的其他选项:

1)如果您有应用程序名称

使用ps -C <application name> -T

  • -C表示命令名称应在其之后
  • 表示。
  • -T列出了用蜘蛛的所有线程

2)如果您有进程ID,

使用ps -p <process id> -T

  • -p表示过程ID应在其后
  • 之后遵循
  • -T列出了用蜘蛛的所有线程