使用 C++ 获取 Linux 中进程的 RAM 和 CPU 使用率

Posted

技术标签:

【中文标题】使用 C++ 获取 Linux 中进程的 RAM 和 CPU 使用率【英文标题】:Get RAM and CPU usage for process in Linux with C++ 【发布时间】:2011-07-12 04:21:04 【问题描述】:

我想写一个像系统监视器这样的程序。 我想要一个程序列表,其中包含它们的进程 ID 以及 CPU 和 RAM 的使用情况。 我知道 Linux 在/proc 文件夹中写入了这些信息,但有人告诉我,我也可以使用一些函数来获取它。例如一个程序会返回一个类似的列表:

name  PID   RAM
sh    3904  72KIB

我想用 C++ 编写代码。

【问题讨论】:

已经有很多程序可以做到这一点。大多数是开源的。去看看源代码。 @Chris 你能帮我一个链接吗?谢谢 htop 是我个人的最爱。 【参考方案1】:

您为什么不查看top 的源代码,它显示了这些以及更多的进程统计信息?

Here是busybox版本,比较简短。它通过读取proc文件系统获取信息,逻辑是here。

【讨论】:

谢谢...它看起来不错。但是我可以如何使用它?它似乎不是标准库。你能帮我一下吗? @mimad:您可以使用标准库从 Linux /proc/ 文件系统中读取伪文件。要在那里枚举文件,请使用例如提升。

以上是关于使用 C++ 获取 Linux 中进程的 RAM 和 CPU 使用率的主要内容,如果未能解决你的问题,请参考以下文章

使用 C 或 C++ 在 OS/400 中获取可用 RAM?

您如何确定 C++ 中 Linux 系统 RAM 的数量?

如何使用 C++ 从 macOS 的 Activity Monitor 应用程序获取 CPU、GPU 和 RAM 使用情况?

Linux命令-查看指定程序RAM内存占用率和CPU占用率的两种方式

哪些内存页面分配给 Linux RAM 磁盘中的文件

如何查看 Linux 的 RAM 视图以确定碎片