linux c程序获取cpu使用率及内存使用情况

linux c程序获取cpu使用率及内存使用情况

ID:39349058

大小:75.52 KB

页数:15页

时间:2019-07-01

linux c程序获取cpu使用率及内存使用情况_第1页
linux c程序获取cpu使用率及内存使用情况_第2页
linux c程序获取cpu使用率及内存使用情况_第3页
linux c程序获取cpu使用率及内存使用情况_第4页
linux c程序获取cpu使用率及内存使用情况_第5页
资源描述:

《linux c程序获取cpu使用率及内存使用情况》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、想获取一下目标机运行时linux系统的硬件占用情况,写了这几个小程序,以后直接用了。方法就是读取proc下的文件来获取了。cpu使用率:  /proc/stat,内存使用情况:    /proc/meminfo看程序:/   @file:      statusinfo.c   @brief:      从linux系统获取cpu及内存使用情况   @version   1.0   @author      抹黑   @date      2009年3月17日/typedefstructPACKED        //定义一个cpuo

2、ccupy的结构体{charname[20];     //定义一个char类型的数组名name有20个元素unsignedintuser;//定义一个无符号的int类型的userunsignedintnice;//定义一个无符号的int类型的niceunsignedintsystem;//定义一个无符号的int类型的systemunsignedintidle;//定义一个无符号的int类型的idle}CPU_OCCUPY;typedefstructPACKED        //定义一个memoccupy的结构体{charname[

3、20];     //定义一个char类型的数组名name有20个元素unsignedlongtotal; charname2[20];unsignedlongfree;                       }MEM_OCCUPY;get_memoccupy(MEM_OCCUPYmem)//对无类型get函数含有一个形参结构体类弄的指针O{   FILEfd;             intn;                charbuff[256];      MEM_OCCUPYm;   m=mem;          

4、                                                                                                      fd=fopen("/proc/meminfo","r");          fgets(buff,sizeof(buff),fd);    fgets(buff,sizeof(buff),fd);    fgets(buff,sizeof(buff),fd);    fgets(buff,sizeof(buff),fd);    

5、sscanf(buff,"%s%u%s",m->name,&m->total,m->name2);        fgets(buff,sizeof(buff),fd);//从fd文件中读取长度为buff的字符串再存到起始地址为buff这个空间里    sscanf(buff,"%s%u",m->name2,&m->free,m->name2);        fclose(fd);    //关闭文件fd}intcal_cpuoccupy(CPU_OCCUPYo,CPU_OCCUPYn) {      unsignedlongod,

6、nd;       unsignedlongid,sd;   intcpu_use=0;          od=(unsignedlong)(o->user+o->nice+o->system+o->idle);//第一次(用户+优先级+系统+空闲)的时间再赋给od   nd=(unsignedlong)(n->user+n->nice+n->system+n->idle);//第二次(用户+优先级+系统+空闲)的时间再赋给od         id=(unsignedlong)(n->user-o->user);   //用户第一

7、次和第二次的时间之差再赋给id   sd=(unsignedlong)(n->system-o->system);//系统第一次和第二次的时间之差再赋给sd   if((nd-od)!=0)   cpu_use=(int)((sd+id)10000)/(nd-od);//((用户+系统)乖100)除(第一次和第二次的时间差)再赋给g_cpu_used   elsecpu_use=0;   //printf("cpu:%u",cpu_use);   returncpu_use;}get_cpuoccupy(CPU_OCCUPYcpu

8、st)//对无类型get函数含有一个形参结构体类弄的指针O{      FILEfd;            intn;               charbuff[256];    CPU_OCCUPYcpu_occ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。