QNX下获取系统信息的方法(cpu,内存,进程等等)

本文介绍了在QNX操作系统中获取系统信息,包括内存、CPU占有率和进程信息的方法。通过CProcInfo类和CCpuUsed类实现,提供InitSysInfo、GetFreeMem、GetTotalMem等函数来获取系统状态,并使用CpuUsed类计算CPU使用率。代码中包含ProcInfo.h、ProcInfo.cpp、CpuUsed.h和CpuUsed.cpp的详细实现。
摘要由CSDN通过智能技术生成

有不少朋友问在qnx下如何获取内存及cpu占有率等等,想到两年前自己做过一个类似windows里的任务管理器的东东,里面有一部分就是获取内存,cpu,磁盘及进程信息的GUI程序,记得也美其名曰xxxTaskMan。把里面的关键代码写下来供兄弟们参考。界面部分就不公布了,无非是一些窗口,按钮,list等等。

 

一、ProcInfo.h

 

  1. // ProcInfo.h: interface for the CProcInfo class.
  2. //
  3. //
  4. #if !defined(AFX_PROCINFO_H__E3782DFC_59DE_45FC_BF1F_D8C8BF0181C1__INCLUDED_)
  5. #define AFX_PROCINFO_H__E3782DFC_59DE_45FC_BF1F_D8C8BF0181C1__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. class CProcInfo  
  10. {
  11. public:
  12.     CProcInfo();
  13.     virtual ~CProcInfo();
  14. public:
  15.     static void InitSysInfo();
  16.     static void ClearSysInfo();
  17.     static int GetFreeMem();
  18.     static int GetTotalMem();
  19.     static int GetFreeMemPercent();
  20.     static void GetSysInfo(int &TotalMem,int &CpuSpeed,int &BootTime,char *pszCpuName);
  21.     static void GetDiskInfo(int &Total,int &Free);
  22.     static int  GetFreeDiskPercent();
  23.     static int normalize_data_size(int &size);
  24.     
  25.     static bool GetProcName(const int iPid,char *pszProcName,int &fd);
  26.     static bool GetSingleProcInfo(const int fd,long &StartTsp,int &CpuTime,int &MemSize);
  27. private:
  28.     static int s_iTotalMem;
  29.     static int s_iCpuSpeed;
  30.     static int s_iBootTime;
  31.     static char s_strCpuName[32];
  32.     static int s_hSysProc;
  33.     static int s_hRootFile;
  34. };
  35. #endif // !defined(AFX_PROCINFO_H__E3782DFC_59DE_45FC_BF1F_D8C8BF0181C1__INCLUDED_)

使用方法,启动后先调用一次InitSysInfo(),结束后调用一次ClearSysInfo()进行清理。

 

2、ProcInfo.cpp代码

 

 

 

  1. // ProcInfo.cpp: implementation of the CProcInfo class.
  2. //
  3. //
  4. #include <errno.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <fcntl.h>
  8. #include <string.h>
  9. #include <unistd.h>
  10. #include <sys/iofunc.h>
  11. #include <sys/dispatch.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值