请在Linux系统使用c++编写获取进程的CPU利用率信息代码。
时间: 2024-05-04 10:16:13 浏览: 96
好的,我可以帮你回答这个问题。以下是获取进程的CPU利用率信息的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BUFF_SIZE 2048
int main(int argc, char **argv) {
if (argc < 2) {
printf("Usage: %s <pid>\n", argv[0]);
return -1;
}
int pid = atoi(argv[1]);
char buff[MAX_BUFF_SIZE];
sprintf(buff, "/proc/%d/stat", pid);
FILE *fp = fopen(buff, "r");
if (fp == NULL) {
printf("Failed to open file\n");
return -1;
}
fgets(buff, sizeof(buff), fp);
fclose(fp);
char *token;
const char delim[2] = " ";
token = strtok(buff, delim);
int count = 1;
double utime = 0, stime = 0;
while (token != NULL) {
if (count == 14) {
utime = atof(token);
} else if (count == 15) {
stime = atof(token);
}
token = strtok(NULL, delim);
count++;
}
double cpu_usage = (utime + stime) / sysconf(_SC_CLK_TCK);
printf("CPU Usage: %.2f%%\n", cpu_usage * 100);
return 0;
}
```
你可以将上面的代码保存为一个 C 文件,在 Linux 上使用 gcc 编译器进行编译,然后运行时指定要查询的进程的 PID,如下所示:
```
gcc -o get_cpu_usage get_cpu_usage.c
./get_cpu_usage <pid>
```
其中 `<pid>` 是要查询的进程的 PID。运行之后,程序会输出该进程的 CPU 利用率信息。
阅读全文