Linux C++ 获取某一进程的CPU占用率以及内存占用情况

最近做监控相关东西的时候,需要获取某一进程CPU以及内存使用情况,就简单的写了一下,代码具体如下:

#include 
#include 
#include 
#include 
#include 

#define VMRSS_LINE 17
#define VMSIZE_LINE 13
#define PROCESS_ITEM 14

typedef struct {
	unsigned long user;
	unsigned long nice;
	unsigned long system;
	unsigned long idle;
}Total_Cpu_Occupy_t;


typedef struct {
	unsigned int pid;
	unsigned long utime;  //user time
	unsigned long stime;  //kernel time
	unsigned long cutime; //all user time
        unsigned long cstime; //all dead time
}Proc_Cpu_Occupy_t;


//获取第N项开始的指针
const char* get_items(const char*buffer ,unsigned int item){
	
	const char *p =buffer;

	int len = strlen(buffer);
	int count = 0;
	
	for (int i=0; i [user]\n");
		return 1;
	}
	
	unsigned int pid=0;
	
	if(argc > 2){
		pid = get_pid(argv[1],argv[2]);
	}
	else{
		pid = get_pid(argv[1]);
	}
	
	printf("pid=%d\n",pid);
	printf("pcpu=%f\n",get_proc_cpu(pid));
	printf("procmem=%d\n",get_proc_mem(pid));
	printf("virtualmem=%d\n",get_proc_virtualmem(pid));	
	return 0;
}

至此对于一个进程主要的物理信息获取完毕。

你可能感兴趣的:(计算机系统)