Linux c 获取cpu使用率
部分代码改编自来自http://blog.csdn.net/primeprime/article/details/41458731
主要的原理就是获取top -n 1 | grep Cpu执行的结果,并且解析出需要的参数。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#define READ 1
#define WRITE 2
#define CPU_ORDER "top -n 1 | grep Cpu" //执行命令行,并且读取\写入数据
//参数一:命令行
//参数二:执行结果
//参数三:读写选项,默认为1就好,我并没有写写命令行有关的函数
//返回值:成功返回1,失败返回0
//待修改:我并没有写写命令行有关的函数,不过不影响功能
int executeCmd(char *cmd,char *result,int option)
{
char buffer[];
char fileOption[]="r";
FILE *file=NULL; if((NULL==cmd)||(NULL==result))
{
printf("\nexecuteCmd param null!\n");
return ;
} switch(option)
{
case READ:
{
strcpy(fileOption,"r");
break;
}
case WRITE:
{
strcpy(fileOption,"w");
break;
}
default:
{
break;
} } if(NULL==(file=popen(cmd,fileOption)))//打开通道
{
perror("executeCmd popen fail!");
return ;
} strcpy(result,""); while(NULL!=fgets(buffer,,file))//读取结果
{
strcat(result,buffer);
} if(-==pclose(file))//关闭通道
{
perror("executeCmd pclose fail!");
return ;
} return ;
} //获取cpu的用户使用率和系统使用率
//参数一、参数二:存储cpu用户使用率和系统使用率的参数
int getCpuInfo(char *cpuUser,char *cpuSystem)
{
char buffer[]="";
int flag;
if((NULL==cpuUser)||(NULL==cpuSystem))
{
printf("\ngetCpuInfo param null!\n");
return ;
} if(==(flag=executeCmd(CPU_ORDER,buffer,READ)))//执行top -n 1 | grep Cpu命令
{ sscanf(buffer,"%*s%s%*s%s%*s",cpuUser,cpuSystem);//读取cpu用户使用率和系统使用率
}
return ;
} int main()
{ char str1[]="none";
char str2[]="none"; getCpuInfo(str1,str2); printf("\n%s %s\n",str1,str2); return ;
}
Linux c 获取cpu使用率的更多相关文章
- Linux c 获取cpu使用率(2)
上一篇博文当中,我们谈论了在Linux中如何获取执行命令行的结果,最终得到cpu的 使用率,但是十分不幸的事情是: 1)通过top -n 1 | grep Cpu获取的cpu使用率不会刷新,每次读取结 ...
- 简单获取cpu使用率,以及后台运行的问题
做了一个运维平台,有一个功能定时执行一个脚本,获取cpu使用率和内存使用情况到监控平台. 获取cpu使用率使用的是top中的信息.直接运行没有问题.通过nohup xxx.sh & 之后获取不 ...
- Linux上获取CPU Core个数的实现
Linux上获取CPU Core个数的实现 可以通过多种手段取得CPU Core的个数,如: 1) 调用系统提供的函数get_nprocs(),可以在头文件sys/sysinfo.h中发现它 2) 借 ...
- Linux系统获取CPU温度
Linux系统获取CPU温度 摘自:https://jingyan.baidu.com/article/cbf0e500407d072eab289343.html 各位好,本篇将简单介绍如何在不同系列 ...
- linux下实现CPU使用率和内存使用率获取方法
想获取一下目标机运行时linux系统的硬件占用情况,写了这几个小程序,以后直接用了. 方法就是读取proc下的文件来获取了. cpu使用率: /proc/stat ,内存使用情况: /p ...
- Linux系统中CPU使用率查询常用的5个命令
在程序开发中,我们一般都是在Linux系统上进行开发,因此对Linux系统的维护工作很重要.在Linux系统维护中,我们需要经常查看的就是cpu的使用率,分析系统的整体运行情况.那CPU使用率怎么查询 ...
- 转载 - LINUX下查看CPU使用率的命令
几个常用的命令,一些不错的解释 http://blog.csdn.net/wengpingbo/article/details/6302058 1.top 使用权限:所有使用者 使用方式:top [- ...
- shell 获取cpu使用率
1.shell脚本获取主机每颗CPU使用率的方法. #!/bin/bash interval= cpu_num=`-] -c` start_idle=() start_total=() cpu_rat ...
- LINUX下查看CPU使用率的命令[Z]
1.top 使用权限:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明:即时显示process的动态 d :改变显示的更新速度,或 ...
随机推荐
- How do you explain Machine Learning and Data Mining to non Computer Science people?
How do you explain Machine Learning and Data Mining to non Computer Science people? Pararth Shah, ...
- 退出unity运行
public void GetExit()//退出运行 { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false;//用于退 ...
- JDK安装与配置(Windows 7系统)
1.前言 安装之前需弄清JDK.JRE.JVM这几个概念,不然稀里糊涂不知道自己在装什么. (1)什么是java环境:我们知道,想听音乐就要安装音乐播放器,想看图片需要安装图片浏览器,同样道理,要运行 ...
- mysql日期操作
一.获取当前日期时间 1.1.获得当前日期+时间(date+time)函数:now() 1.2.获取当前日期+时间(date+time)函数:sysdate() 注:二者类拟,不同在于now()在执行 ...
- python学习教程,史上最全面的python学习路线图
Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...
- Google 开发的、最好用、功能最强大的网页测速与网站性能分析工具
https://www.webpagetest.org/细致到每一个资源的加载都是完全可视化,包含详细的数据分析.开发完成自己的网站后一定要进行一下测试,你会发现还有很多可以优化的点.
- Shift键的三个妙用!Word又现神操作!
1.Shift+Alt+上下方向键 :调整段落顺序 同时按这三个键,能够调整段落的顺序,也可以用来调整表格中的行序. 2.Shift+F3:英文大写/小写/首字母大写,这三种模式切换 PS:如果中间夹 ...
- Linux 系统开启最大线程数 调优
系统最大线程数说明 系统可开启的最大线程数,可根据系统本身负载配置进行调优. 查看系统最大线程数 1.查看系统开启的最大线程数. ulimit -u [root@izbp1brwu1w35r1dmj8 ...
- activiti5/6 系列之--BpmnModel使用
BpmnModel对象,是activiti动态部署中很重要的一个对象,如果BpmnModel对象不能深入的理解,那可能如果自己需要开发一套流程设计器,使用bpmn-js使用前端或者C/S展现流程流转而 ...
- Python3 tkinter基础 OptionMenu 将list导入下拉列表中
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...