通过C程序获得CPU使用情况
时间:2010-08-31
来源:互联网
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <errno.h>
-
- struct cpu_usage
- {
- unsigned long user;
- unsigned long sys;
- unsigned long nice;
- unsigned long idle;
-
- };
-
- static struct cpu_usage old_cd, new_cd;
- static tmp[64];
- void get_cpu_data(struct cpu_usage *pcd)
- {
- FILE *file = NULL;
- file = fopen("/proc/stat", "r");
- if (file == NULL)
- {
- perror("fopen");
- exit(-1);
- }
- memset(pcd, 0, sizeof(struct cpu_usage));
- fscanf(file, "%s %lu %lu %lu %lu", tmp, &(pcd->user), &(pcd->sys), &(pcd->nice), &(pcd->idle
- ));
- fclose(file);
- }
-
- void cpu_usage()
- {
- double user, sys, nice, idle, total;
-
- get_cpu_data(&new_cd);
- user = (double)(new_cd.user - old_cd.user);
- sys = (double)(new_cd.sys - old_cd.sys);
- nice = (double)(new_cd.nice - old_cd.nice);
- idle = (double)(new_cd.idle - old_cd.idle);
- total = user + sys + nice + idle;
- memcpy(&old_cd, &new_cd, sizeof(struct cpu_usage));
- fprintf(stdout, "CPU usage: %2.1f\%\n", (idle / total) * 100);
- }
-
-
- int main()
- {
- get_cpu_data(&old_cd);
- while(1)
- {
- sleep(1);
- cpu_usage();
- }
- return 0;
- }
头文件在/usr/include/glibtop.h
作者: osdba 发布时间: 2010-08-31
这个有命令吧?
作者: ecjtubaowp 发布时间: 2010-08-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28