句柄无法释放

ho121 ho121 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个代码每次循环都会创建一个进程,我在进程创建后都CloseHandle,但是任务管理器依然是在每次循环都增加一个句柄数


#include <stdio.h>
#include <windows.h>

int main(void)
{
BOOL StartUpStatus;
STARTUPINFO StartUpInfo;
PROCESS_INFORMATION ProcessInfo;
int ExitCode = -1;

while(1)
{

memset(&StartUpInfo, 0, sizeof(StartUpInfo));
StartUpInfo.cb = sizeof(StartUpInfo);

StartUpInfo.lpReserved = NULL;
StartUpInfo.lpDesktop = NULL;
StartUpInfo.lpTitle = NULL;
StartUpInfo.dwFlags = STARTF_USESHOWWINDOW;
StartUpInfo.wShowWindow = SW_HIDE;
StartUpInfo.cbReserved2 = 0;
StartUpInfo.lpReserved2 = NULL;
memset(&ProcessInfo, 0, sizeof(ProcessInfo));

StartUpStatus = CreateProcess(NULL, "cmd /c exit", NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &StartUpInfo, &ProcessInfo);

if( StartUpStatus == FALSE )
{
return 1;
}

WaitForSingleObject(ProcessInfo.hProcess, INFINITE);

GetExitCodeProcess(ProcessInfo.hProcess, (PDWORD)&ExitCode);

CloseHandle(ProcessInfo.hThread);
printf("%d\n", (int)GetLastError());

CloseHandle(ProcessInfo.hProcess);
printf("%d\n", (int)GetLastError());

Sleep(2000);

}

return 0;
}



比如说第一次循环时,显示当前进程有28个句柄,第二次循环时,显示当前进程有29个句柄,第三次循环时,显示当前进程有30个句柄,一直升,可是我CloseHandle了啊,难道还有什么句柄没有被Close掉?
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
ho121
进程/线程/DLL 15,465 成员 49,169 内容