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 :改变显示的更新速度,或 ...
随机推荐
- Hbase 系统架构(zhuan)
一.系统架构 客户端连接hbase依赖于zookeeper,hbase存储依赖于hadoop client: 1.包含访问 hbase 的接口, client 维护着一些 cache(缓存) 来加快对 ...
- Gis数据处理
几何投影和解析投影几何投影是将椭球面上的经纬线网投影到几何平面上,然后将几何面展为平面.几何投影可以分为方位投影.圆柱投影和圆锥投影.这三种投影纬线的形状不同.方位投影纬线的形状是同心圆:圆柱投影纬线 ...
- 【转】python虚拟环境--virtualenv
virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包. 安装 pip install virtu ...
- https://scrapingclub.com/exercise/detail_sign/
def parse(self, response): # pattern1 = re.compile('token=(.*?);') # token = pattern1.findall(respon ...
- DB2 错误代码
sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 0 ...
- 和 (DFS)
和 Time Limit: 1000MS Memory Limit: 65536KB Total Submissions: 177 Accepted: 93 Share Description: ...
- GO流程控制
Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码.降低重复代码而生的结构,不常用,属于扩展类的流程控制. if else if基本写法 if 表达式1 { 分支1 ...
- jQuery事件绑定与常用事件
jQuery事件与js类似,只是在名称上将前面的on去掉了,例如jQuery的click.mousedown.keypress事件.jQuery绑定事件有2种方法,下面用最基本的例子做演示. ①直接绑 ...
- redhat6.4提权Ⅱ
本次演示只针对redhat6.4, 其他的系统不知道有没有效果. 下面开始吧 建立普通用户并授予密码 [root@localhost yum.repos.d]# useradd test [root@ ...
- StringUtils工具类常用方法汇总(截取、去除空白、包含、查询索引)
一.截取 StringUtils中常用的截取字符串的方法如下: substring(String str,int start) substring(String str,int start, in ...