当前位置:  技术问答>linux和unix

请问:在linux下面怎么在程序里写代码察看cpu和内存使用情况

    来源: 互联网  发布时间:2015-06-02

    本文导语:  如果采用读文件的方式,那么在/proc下面的文件中哪些是关于cpu使用情况的? 只读一个给定线程号的,或者读取总数的都行。 谢谢! | int GetCpuEffi(double* pdEffi) { int sum; int idle; FILE* fp; char va1[12]; ...

如果采用读文件的方式,那么在/proc下面的文件中哪些是关于cpu使用情况的?
只读一个给定线程号的,或者读取总数的都行。
谢谢!

|

int GetCpuEffi(double* pdEffi)
{
int sum;
int idle;
FILE* fp;
char va1[12];
char va2[12];
char va3[12];
char va4[12];
char val1[12];
char val2[12];
char val3[12];
char val4[12];
char line[128];

/* open "/proc/stat" file */
if ( (fp = fopen("/proc/stat", "r")) == NULL ) {
// fprintf(stderr, "%s %d Fail to open /proc/stat file n", __FILE__, __LINE__);
return -1;
}
/* read first line */
if ( fgets(line, 128, fp) == NULL ) {
/* read error */
     fclose(fp);
       return -1;
     }
     /* get parameter */
     GetLineArg(line, va1, 1);
     GetLineArg(line, va2, 2);
     GetLineArg(line, va3, 3);
     GetLineArg(line, va4, 4);
    /* close file */
fclose(fp);

/* delay */
sleep(1);

/* reopen "/proc/stat" file */
if ( (fp = fopen("/proc/stat", "r")) == NULL ) {
// fprintf(stderr, "%s %d Fail to open /proc/stat file n", __FILE__, __LINE__);
return -1;
}
/* read first line */
if ( fgets(line, 128, fp) == NULL ) {
/* read error */
     fclose(fp);
       return -1;
     }
     /* get parameter */
     GetLineArg(line, val1, 1);
     GetLineArg(line, val2, 2);
     GetLineArg(line, val3, 3);
     GetLineArg(line, val4, 4);
    /* close file */
fclose(fp);

/* calculate CPU efficiency */
idle = atoi(val4) - atoi(va4);
sum =  atoi(val1) - atoi(va1) + atoi(val2) - atoi(va2) + atoi(val3) - atoi(va3) + atoi(val4) - atoi(va4);
*pdEffi = 1.0000 - (double)idle / (double)sum;

return 0;
}

    
 
 

您可能感兴趣的文章:

  • 请问在unix下,如何察看以前使用者的使用命令
  • 请问linux下,察看系统时间的命令是什么呀
  • 请问在SCO UNIX 5.0.5里如何察看CPU与内存等资源的利用率?谢谢!
  • 请问我的linux的内存占用率怎么老是接近100%啊?
  • 请问在SOLARIS上怎么实时查看程序的内存使用状况??
  • 请问debug如何用l命令把硬盘的目录表调入内存?
  • 请问红帽linux7.0支持3G的内存吗?
  • 请问高手们,有没有一款工具可以测试内核内存泄露的?
  • 请问 AIX 对共享内存块数和每块的大小有什么限制。
  • 请问以root登录时(系统运行一会儿后)占用的内存为什么会激增?
  • sun机器一个一块内存和windows机器上一块内存的高低位相反,请问如何互相转换?
  • 急急急,请问如何检查C程序中内存泄露问题?
  • 请问:Linux的物理内存怎样看?
  • 请问怎么看LINUX的物理内存有多少?
  • 请问在Linux里,如何用JAVA读取内存里的PATH设置
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 请问如何查看一个进程中 brk和mmap各自分配的内存空间的大小
  • 请问:在JAVA中创建句柄后,有没有给这个对象分配内存?
  • 急!!!请问有没有实时监测CPU、内存的占用情况以及网络流量系统调用?
  • 请问用什么命令或者什么方式可以查看到一个进程用了多少字节或者多少兆的内存???????????????????????????
  • 请问在UNIX上如何看一个进程的内存使用情况?
  • 请问能否在linux实现一个应用程序访问另外一个程序的内存数据?
  • 请问一个共享内存的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问什么情况下用servlet,什么情况下用ejb,什么情况下用jsp.给出理由?
  • 请问什么情况下会有超级块
  • 在涉及临界资源时常常使用锁, 大量的锁会大大降低程序的效率,请问如何避免这种情况? iis7站长之家
  • 可实际情况是read永远阻塞在那儿了。请问这是为什么?
  • linux系统运行php几分钟后出现假死情况请问需要设置什么地方?
  • 请问这种情况怎样赋值??
  • 请问AIX下用什么命令能够获取CPU型号、频率信息,多CPU情况下
  • 请问, 怎样通过程序方式,获取到当前系统的CPU,内存等情况
  • 请问:查看端口监听情况的命令是什么啊?( 比如我想看服务器是否在监听某一端口)
  • 请问如何查看端口被占用情况?
  • 现在我用vi时,保存文件时,提示信息是乱码,请问谁遇到过这种情况,如何解决?
  • 请问如何查看UNIX系统下的CPU的占用率,以及硬盘的占用情况。
  • 请问如何在不进入x的情况下在屏幕上显示图片?
  • 请问哪些情况必须在数值的后面加上字符'L'或'l'?
  • 请问linux下如何在保留目录的情况下,删除目录中的多个文件?谢谢
  • 请问,怎样通过程序方式,获取AIX系统当前的CPU, 内存使用情况?
  • 请问各位高手如何在用两块网卡上网的情况下配置Internet连接并将internet共享?
  • 请问在这种情况下如何安装linux9.0,谢谢!
  • 请问如何在不知道对方IP,仅知道MAC地址的情况下和对方通信呢?
  • 在涉及临界资源时常常使用锁, 大量的锁会大大降低程序的效率,请问如何避免这种情况?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3