C语言获取CPU占用率
时间: 2024-09-27 09:05:24 浏览: 49
在C语言中,直接获取CPU占用率通常是通过系统调用或者特定库函数来实现的,因为底层的操作涉及到操作系统提供的API。这里提供一种通用的方法,利用`psutil`库,这是一个跨平台的进程和系统工具包,可以在C中方便地获取CPU利用率。
```c
#include <stdio.h>
#include <stdlib.h>
#include "psutil.h" // 假设已经安装并链接了psutil库
double get_cpu_usage() {
struct proc_stat stats;
if (sysctlbyname("kern.cpustats", &stats, NULL, NULL, 0) == -1) {
perror("Failed to get CPU usage");
exit(EXIT_FAILURE);
}
double total_time = stats.stcpu * sysconf(_SC_CLK_TCK); // _SC_CLK_TCK是获取时间戳频率的宏
double user_time = stats.ru_stime + stats.ru_utime; // ru_stime和ru_utime分别是用户时间和系统时间
return (user_time / total_time) * 100; // 返回CPU占用百分比
}
int main() {
double cpu_usage = get_cpu_usage();
printf("Current CPU usage: %.2f%%\n", cpu_usage);
return 0;
}
```
请注意,你需要先安装并链接`psutil`库才能运行上述代码,而且这个库不是标准库的一部分,需要根据具体的环境进行配置。此外,不同的Linux发行版可能会有不同的系统调用或者库函数来获取CPU信息。
阅读全文