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 :改变显示的更新速度,或 ...
随机推荐
- awk 同时指定多个分隔符
$ echo "id: xxx(6667)xxx"|awk -F "[()]" '{print $2}' $ 6667 $ echo "abc[def ...
- postman接口自动化,环境变量的用法详解(附postman常用的方法)
在实现接口自动测试的时候,会经常遇到接口参数依赖的问题,例如调取登录接口的时候,需要先获取登录的key值,而每次请求返回的key值又是不一样的,那么这种情况下,要实现接口的自动化,就要用到postma ...
- Python记录13:软件开发目录规范
软件开发目录规范 开发一个软件,一个工程项目,一般应该具备以下的几个基本的文件夹和模块,当然,这并不是一成不变的,根据项目的不同会有一定的差异,不过作为一个入门级的新手,建议暂时按照以下的规范编写: ...
- CentOS7+Apache+MySQL+PHP环境
Apache 1.安装Apache:yum -y install httpd 2.开启apache服务:systemctl start httpd.service 3.设置apache服务开机启动:s ...
- C#计算重重字符串,出现的次数
int bac = System.Text.RegularExpressions.Regex.Matches(“字符串”, @"要计算的").Count; //字符串 ...
- Python+OpenCV图像处理(十六)—— 轮廓发现
简介:轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果. 代码如下: import cv2 as cv import numpy as np def c ...
- 复习-css元素定位
css元素定位 <style type="text/css"> body{ margin: 15px; font-family: "Adobe 宋体 Std ...
- vue-i18n安装配置,运行
需求:根据浏览器语言自动切换语言 1.安装vue-i18n, yarn安装 $ yarn add vue-i18n npm安装 $ npm install vue-i18n 2.导入语言包 src下创 ...
- oracle 11.2 asynch descriptor resize等待事件
asynch descriptor resize描述最近部分insert /*+ append */语句出现该等待时间,经查This event is set when the number of a ...
- Python3 tkinter基础 Menu add_checkbutton 多选的下拉菜单
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...