📄 systeminfo.readme
字号:
系统信息类的使用说明:
0、在不能使用安装包(SystemInfobeta25.tar.gz)进行安装时,那么先进行top程序包(top-3.5beta12.tar.gz)的安装,
然后再进行重新编译,包里面提供两个实例makefile文件:SystemInfo.mk以及SystemInfoLib.mk
1、下面是各个系统下的makefile实例文件,其中username.o,utils.o,machine.o必须使用c语言编辑器(cc等)
编译成.o文件,然后再用下面的makefile进行编译:
#CSystemInfo类演示用SystemInfo.mk,使用-DCLASS_DEMO可以编译写在SystemInfo.cpp中的main函数
2、本类是基于TOP源程序而写的,它使用了TOP源程序中的下列文件:
machine.h, machine.c(该文件依赖于系统不同又不同),utils.c,utils.h,boolean.h,top.local.h,
username.c,top.h以及本类的两个文件SystemInfo.cpp,SystemInfo.h
3、将该类所需的文件编译打包生成基于四种不同的平台的库文件后,只需要两个文件,其他的程序就可以
直接使用了,这两个文件是:libsystem_info.a(因平台而异),machine.h
4、本类在 SunOS 5.7 , AIX Version 4,
HP-UX hpl3000 B.11.00 U 9000/800 (to)
Compaq Tru64 UNIX V5.0 (Rev. 910) (cpq) (pts/14)
四种平台上测试通过,除了内存信息不能准确得出之外(因为top本身也不能得出),其他的都正常!
5、本类的Compaq Tru64 UNIX V5.0 (Rev. 910) (cpq) (pts/14)平台上使用时,可以使用普通用户进行
编译,但如果要得到系统中进程的信息,必须使用root权限,或者进行下面的修改:
(1)ls -l mytop(回车)
-rwxr-xr-x 1 olcom users 563328 Nov 16 16:10 mytop
(2)进入root 权限,(su,回车,敲入密码,回车)
(3)chown root mytop
(4)chmod u+s mytop
(5)exit
这样,进程信息就能取得到!
6、提供方法:
/* 初始化,该函数不允许被多次调用! ,返回-1出错,返回0成功*/
int fnInitialize();
/* 取系统cpu负载,iSs为秒数,返回0 */
int fnGetCpuStatus(SCpuStatus& outCpuStatus);
/* 取内存信息,返回0 */
int fnGetMemInfo(SMemInfo& outMemInfo);
/* /取系统1,5,15分的平均负载信息 ,返回0*/
int fnGetLoadAvg(SLoadAvg& outLoadAvg);
/*初始化进程信息*/
int fnIniPsInfo();
/* 取实际进程数 */
int fnGetRealPsNum();
/* 取进程信息,
返回:0 -成功
-1,不能得到进程信息结构,说明所有的进程信息已取完,需重新
初始化进程信息,当返回-1时,还可以继续调用该函数
-2,错误,可能是权限不够问题
*/
int fnGetPsInfo(SPsInfo& outPsInfo);
/* 版本信息 */
char* fnGetVer()const;
具体用法,请参见SystemInfo.cpp文件中的后面部分
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -