CreateToolhelp32Snapshot句柄泄漏(内存泄漏)

// 以下代码为查找系统中是否有某个进程在运行

 

#include

 

BOOL FindProcessByName(char *pProcessName)

{

PROCESSENTRY32 pe;

HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

pe.dwSize = sizeof(PROCESSENTRY32);

if (hSnapshot==NULL)

{

return FALSE;

}

Process32First(hSnapshot,&pe);

do 

{

if (strcmp(pProcessName,pe.szExeFile)==0)

{

return TRUE;

}

} while (Process32Next(hSnapshot,&pe));

CloseHandle(hSnapshot);

return FALSE;

}

 

 

用CreateToolhelp32Snapshot创建的句柄,调用CloseHandle关闭,资源并没有被完全释放。通过反复调用CreateToolhelp32Snapshot()和CloseHandle(),在任务管理器上查看句柄数量,可证实此问题。

 

 

你可能感兴趣的:(CreateToolhelp32Snapshot句柄泄漏(内存泄漏))