获取进程中的内存信息C
问题描述:
我想在C中获取进程内存信息。我在Windows XP上使用Cygwin和GCC 4.5。我包含#include <psapi.h>
并在构建程序时使用-lpsapi
。 我得到的错误获取进程中的内存信息C
undefined reference to [email protected]
请告诉正确的方式来获得内存的C.进程信息我读了this question,但它不是我的问题帮助。
我使用的代码。
#include <windows.h>
#include <stdio.h>
#include <psapi.h>
void PrintMemoryInfo(DWORD processID)
{
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS pmc;
// Print the process identifier.
printf("\nProcess ID: %u\n", processID);
getchar();
// Print information about the memory usage of the process.
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE,
processID);
if (NULL == hProcess)
return;
if (GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc)))
{
printf("\tPageFaultCount: 0x%08X\n", pmc.PageFaultCount);
printf("\tYour app's PEAK MEMORY CONSUMPTION: 0x%08X\n",
pmc.PeakWorkingSetSize);
printf("\tYour app's CURRENT MEMORY CONSUMPTION: 0x%08X\n", pmc.WorkingSetSize);
printf("\tQuotaPeakPagedPoolUsage: 0x%08X\n",
pmc.QuotaPeakPagedPoolUsage);
printf("\tQuotaPagedPoolUsage: 0x%08X\n",
pmc.QuotaPagedPoolUsage);
printf("\tQuotaPeakNonPagedPoolUsage: 0x%08X\n",
pmc.QuotaPeakNonPagedPoolUsage);
printf("\tQuotaNonPagedPoolUsage: 0x%08X\n",
pmc.QuotaNonPagedPoolUsage);
printf("\tPagefileUsage: 0x%08X\n", pmc.PagefileUsage);
printf("\tPeakPagefileUsage: 0x%08X\n",
pmc.PeakPagefileUsage);
}
CloseHandle(hProcess);
}
int main()
{
PrintMemoryInfo(GetCurrentProcessId());
return 0;
}
欢迎回答与建议。
有一次,我有这个问题,因为我使用-l早于具有主函数的.c文件的名称。 – Pyjong 2012-03-06 07:05:54
@stupid_idiot可能是对的。请显示您用来构建程序的命令行。 – 2012-03-06 07:09:49
[This](http://justinsboringpage.blogspot.com/2009_05_14_archive.html)和[this](http://old.nabble.com/Build-problems-on-MinGW-td21445405.html)建议订单命令行中的'-lpsapi'很重要。尝试把它放在最后。 – 2012-03-06 07:50:39