写一个可以监测cpu占用率的c程序
时间: 2024-05-04 14:21:10 浏览: 8
以下是一个简单的可以监测CPU占用率的C程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
int pid;
double cpu_usage;
double prev_idle_time = 0, prev_total_time = 0, idle_time, total_time;
char stat_file[100];
FILE *fp;
pid = getpid();
sprintf(stat_file, "/proc/%d/stat", pid);
while(1) {
fp = fopen(stat_file, "r");
fscanf(fp, "%*d %*s %*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u %lu %lu", &idle_time, &total_time);
fclose(fp);
cpu_usage = 100.0 * (1 - ((idle_time - prev_idle_time)*1.0 / (total_time - prev_total_time)));
printf("CPU Usage: %.2f%%\n", cpu_usage);
prev_idle_time = idle_time;
prev_total_time = total_time;
sleep(1);
}
return 0;
}
```
该程序通过读取 `/proc/[pid]/stat` 文件获取 CPU 的空闲时间和总时间,计算出 CPU 使用率,并每秒打印一次。请注意,该程序只能在 Linux 系统上运行。