实验目的:
通过系统调用实现获取当前正在运行的进程占用系统中的内存资源的最大值,
由于涉及到系统库中的API 所以将其归类为kernel方向。
实验思路:
希望本程序可以被 windows 和 linux/unix 所兼容,所以编程实现时过程中通过宏定义
方法来判断当前平台类型,然后根据不同的平台类型调用不同的系统 API 来得到系统的参数。
但是在代码中仅给出 window 下面的代码及说明(使用 #ifdef 来分辨平台在 vs2012 中没有调试成功)
实验环境:
vs2012 , c++
实验代码:
//memChecker.h
#ifndef MEMCHECKER_H
#define MEMCHECKER_H
namespace memChecker
{
long get_maxMem_kb () ;
}
#endif //MEMCHECKER_H
//memChecker.cpp
#include "memChecker.h"
#include <Windows.h>
#include <Psapi.h>
using namespace memChecker;
long memChecker::get_maxMem_kb()
{
PROCESS_MEMORY_COUNTERS pmc ;
GetProcessMemoryInfo(GetCurrentProcess() , &pmc, size