cpu 实时使用率 linux api接口
时间: 2023-12-02 07:18:39 浏览: 84
可以使用 Linux 的系统调用 `getrusage` 获取 CPU 的实时使用率。具体的操作步骤如下所示:
1. 在 C/C++ 代码中引入头文件 `sys/resource.h`。
2. 使用 `getrusage` 函数获取当前进程的资源使用情况。
3. 从 `struct rusage` 结构体中获取 CPU 的使用情况,具体包括用户时间(`ru_utime`)和系统时间(`ru_stime`),并计算出 CPU 的实时使用率。
下面是一个简单的示例代码:
```c++
#include <sys/resource.h>
#include <iostream>
#include <chrono>
#include <thread>
int main() {
while (true) {
struct rusage usage;
getrusage(RUSAGE_SELF, &usage);
double cpu_usage = (double)(usage.ru_utime.tv_sec + usage.ru_stime.tv_sec) +
(double)(usage.ru_utime.tv_usec + usage.ru_stime.tv_usec) / 1000000.0;
std::cout << "CPU usage: " << cpu_usage << std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
}
return 0;
}
```
在上面的示例代码中,我们使用 `getrusage` 函数获取当前进程的资源使用情况,并计算出 CPU 的实时使用率。随后,我们使用 `std::this_thread::sleep_for` 函数等待 1 秒钟,然后再次获取 CPU 的使用情况。这样就可以实现实时监控 CPU 的使用率了。