J
james
Your question is related to system level. you can not find any function in
standard C/C++. you need to search MEMORY API which are OS SDK provided. for
example: if your program is running at WIN32 platform:
//
MEMORYSTATUS m_mem;
::GlobalMemoryStatus(&m_mem);
//then derived as
DWORD GetPercentMemoryInUse(){return m_mem.dwMemoryLoad;};// percent of
memory in use
DWORD GetTotalPhys(){return m_mem.dwTotalPhys;};// bytes of physical memory
DWORD GetAvailPhys(){return m_mem.dwAvailPhys;};// free physical memory
bytes
DWORD GetTotalPageFile(){return m_mem.dwTotalPageFile;}; // bytes of
paging file
DWORD GetAvailPageFile(){return m_mem.dwAvailPageFile;}; // free bytes of
paging file
DWORD GetTotalVirtual(){return m_mem.dwTotalVirtual;}; // user bytes of
address space
DWORD GetAvailVirtual(){return m_mem.dwAvailVirtual;}; //free user bytes
CMem(LPMEMORYSTATUS &mem);
standard C/C++. you need to search MEMORY API which are OS SDK provided. for
example: if your program is running at WIN32 platform:
//
MEMORYSTATUS m_mem;
::GlobalMemoryStatus(&m_mem);
//then derived as
DWORD GetPercentMemoryInUse(){return m_mem.dwMemoryLoad;};// percent of
memory in use
DWORD GetTotalPhys(){return m_mem.dwTotalPhys;};// bytes of physical memory
DWORD GetAvailPhys(){return m_mem.dwAvailPhys;};// free physical memory
bytes
DWORD GetTotalPageFile(){return m_mem.dwTotalPageFile;}; // bytes of
paging file
DWORD GetAvailPageFile(){return m_mem.dwAvailPageFile;}; // free bytes of
paging file
DWORD GetTotalVirtual(){return m_mem.dwTotalVirtual;}; // user bytes of
address space
DWORD GetAvailVirtual(){return m_mem.dwAvailVirtual;}; //free user bytes
CMem(LPMEMORYSTATUS &mem);