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

怎么将这段JAVA代码换成C语言,实现同样的功能,就是查看进程内存?

    来源: 互联网  发布时间:2016-08-10

    本文导语:  通过读取/PROC/STAT得到每一个数据,怎么通过C实现,这个是JAVA? public static float getCpuInfo() throws IOException,  InterruptedException {   File file = new File("/proc/stat");   BufferedReader br = new BufferedReader (new  InputStreamReade...

通过读取/PROC/STAT得到每一个数据,怎么通过C实现,这个是JAVA?
public static float getCpuInfo() throws IOException, 

InterruptedException
{
  File file = new File("/proc/stat");
  BufferedReader br = new BufferedReader (new 

InputStreamReader(new FileInputStream(file)));
  StringTokenizer token = new StringTokenizer(br.readLine

());
  token.nextToken();
  int user1 = Integer.parseInt(token.nextToken());
  int nice1 = Integer.parseInt(token.nextToken());
  int sys1 = Integer.parseInt(token.nextToken());
  int idle1 = Integer.parseInt(token.nextToken());
  
  Thread.sleep(1000);
  br = new BufferedReader( new InputStreamReader(new 

FileInputStream(file)));
  token = new StringTokenizer(br.readLine());
  token.nextToken();
  int user2 = Integer.parseInt(token.nextToken());
  int nice2 = Integer.parseInt(token.nextToken());
  int sys2 = Integer.parseInt(token.nextToken());
  int idle2 = Integer.parseInt(token.nextToken());
  return (float) ((user2 + sys2 + nice2) - ( user1 + sys1 

+ nice1))/(float)
  ((user2 + sys2 + nice2 + idle2) - ( user1 + sys1 + nice1 

+idle1));
  }

|
没有做错误处理。

#include 
#include 
#include 
#include 

float getCpuInfo()
{
    int user1, nice1, sys1, idle1;
    int user2, nice2, sys2, idle2;
    char line[80]={0};

    FILE *fp = fopen("/proc/stat", "r");
    fgets(line, 80, fp);
    sscanf(strchr(line, ' '), "%d %d %d %d", &user1, &nice1, &sys1, &idle1);
    //printf("%d %d %d %dn",user1, nice1, sys1, idle1); 
    fclose(fp);
    
    sleep(1);
    fp = fopen("/proc/stat", "r");
    fgets(line, 80, fp);
    sscanf(strchr(line, ' '), "%d %d %d %d", &user2, &nice2, &sys2, &idle2);
    fclose(fp);
    return (float)((user2 + sys2 + nice2) -(user1 + sys1 + nice1)) /
        ((user2 + sys2 + nice2 + idle2) - (user1 + sys1 + nice1 + idle1));
}

int main()
{
    printf("%fn", getCpuInfo());
    return 0;
}


    
 
 

您可能感兴趣的文章:

  • 怎么把JAVA的标题栏换成XP的啊
  • 怎么把JAVA的标题栏换成XP的啊
  • java开发的windows程序,窗口左上角的java标志"小咖啡杯"怎样换成别的图片?
  • 怎样把String转换成int?怎样获得系统时间并转换成java.sql.date类型?
  • 我使用corba将Java和C程序连接起来,由Java向C传递一个字符串,但是我发现我原来的0a被换成了0d 0a,那位给各解释。
  • 高手指点:不用JNI,如何在Java进程中新起一个JVM并在其中启动另一个Java进程。
  • lunix下,用java在代码中启动另外一个进程遇到的问题,新启动的进程被阻塞.
  • linux shell关掉后java程序(进程名abc)仍能运行,用ps -ef|grep abc能查到进程名
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • java进程保护
  • java -jar a.jar这些进程怎么杀啊?
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • 如何启动和关闭一个进程(java写的)。
  • 在Java中,如何实现进程间通信,不用RMI
  • java实现进程间通信的方法有哪些?
  • java结束进程的实例代码
  • 求救:AIX下java进程堆内存存在大量空余,但rss内存不断增加
  • HP-Unix操作系统, java进程, Swap空间不释放
  • 在java中,什么情况下属于不同的进程,是在不同的classload中加载的class,还是在不同的jvm中加载的class
  • 请教:C代码中怎样fork出一个java子进程?
  • HELP!!! 关于java进程!解决就+100(急)
  • 如何用JAVA启动一个Windows的可执行程序或一个UNIX的进程??
  • LINUX 或者Windows 如何保证一个进程只有一个实例在运行?如果是C语言,JAVA语言开发,又怎么样保证?
  • Java 进程执行外部程序造成阻塞的一种原因
  • ★★★★★linux shell关掉后java程序(进程名abc)仍能运行,用ps -ef|grep abc能查到进程名
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 内存泄漏是什么?怎么造成的?java中会不会产生内存泄漏?
  • linux下查看java项目虚拟内存很大,请高手指点下
  • 关于JAVA的内存泄露,高分求教!
  • 调试java内存泄漏的工具
  • java虚拟机的内存大小是否可变
  • Java 中如何检测内存泄漏?
  • Java内存使用分析 HeapAnalyzer
  • Java编程的时候怎样有效的防止内存泄露?
  • Web服务器/前端 iis7站长之家
  • 请问:在JAVA中创建句柄后,有没有给这个对象分配内存?
  • java.exe以及相关程序环境运行时报内存错误,请教各位什么原因?
  • Java内存持久层框架 Prevayler
  • Java 内存泄漏检测工具 Censum
  • 请问在Linux里,如何用JAVA读取内存里的PATH设置
  • 急急急:Java实现共享内存疑难,请各位帮手!
  • 深入分析Java内存区域的使用详解
  • Java内存文件系统 Jimfs
  • 如何修改tomcat.sh文件,限定java使用的内存?????
  • 请问如何在java 命令的参数中指定JVM 的最大和最小内存
  • 在java中怎么知道一个对象占用内存的字节数?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


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

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

    浙ICP备11055608号-3