前言
linux系统一切皆文本,所以,系统相关信息可以通过读文件或执行shell命令的方式获取,这里采用后者的方式获取指定进程信息。
代码
.h文件
#include<iostream>
#include<stdio.h>
#include<string>
#include<string.h>
#include<stdlib.h>
using namespace std;
class ProcessInfo
{
public:
/*
功能:获取进程状态
@param ProcessName:进程名
*/
string getProStatus(string ProcessName);
/*
功能:获取进程PID
@param ProcessName:进程名
*/
int getProPID(string ProcessName);
/*
功能:获取进程Port
@param ProcessName:进程名
*/
int getProPort(string ProcessName);
/*
功能:获取进程CPU使用率
@param ProcessName:进程名
*/
string getProCPURate(string ProcessName);
/*
功能:获取进程内存使用率
@param ProcessName:进程名
*/
string getProMemRate(string ProcessName);
};
.cpp文件
#include "ProcessInfo.h"
string ProcessInfo::getProStatus(string ProcessName)
{
FILE *fp=NULL;
// string cmd="df |grep -v 'tmpfs'|grep '/dev/'|awk '{print $4}'";//获取含有/dev/且不含tmpfs的文件目录
string cmd="ps -ef| grep ";
cmd+=ProcessName;
cmd+="|grep -v grep";
fp=popen(cmd.c_str(),"r");
char buf[100];//此处初始化,就可省略后面的memset函数
string status;
if(!fp)
{
cout<<"get "<<ProcessName<<" Process Status Failed!"<<endl;
return "";
}
while