c++ - 如何在 linux 上获取在 "black box"中创建的线程数?

标签 c++ c linux multithreading pthreads

让我用代码澄清我的问题:

int main()
{
    // call for some function which creates threads
    i_create_some_threads();

    // I can get PID
    pid_t pid = getpid();

    // need to get all threads here
    // ???
}

我知道解析 /proc/PID/tasks/ 但正在寻找一种在我的程序中执行此操作且无需解析目录/文件的方法。

有什么办法吗?

最佳答案

涉及的东西

ps -o nlwp <pid>

可能是你想要的。 -o 表示用户定义的输出格式,nlwp 是线程数。这将为您提供如下输出:

 NLWP
    6

只需尝试执行该命令并在您的代码中操作其输出。

关于c++ - 如何在 linux 上获取在 "black box"中创建的线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884809/

相关文章:

node.js - expo publish 总是以 Ubuntu 上的 Javascript head out of memory 结束

c++ - 在 Visual Studio 2019 MSVC 中编译时出现编译错误 C2048,但在 clang++ 中可以正常工作吗?

linux - mod_evasive 模块 DOSSystemCommand 和 DOSEmailNotify 选项不起作用

c++ - 什么 C/C++ 库用于 HTML DOM 构建/更改?

c - 在 C 中存储命令行参数的最佳方法

c - 哈希表添加 - C

循环中的 C 后/前递增指针

c++ - 为什么在这种情况下编译动态库会出错呢?

c++ - C++ 中 int 和 char 的重载运算符

C++如何检测您的应用程序正在运行的虚拟机具有焦点