读书人

CreateProcess创建了一个文件,如何老删

发布时间: 2012-04-09 13:41:25 作者: rapoo

CreateProcess创建了一个文件,怎么老删不掉
char cmdline[200];
CString tmp,stredit2;
stredit2 = "adb devices >.//Mylog12.txt";
tmp.Format("cmd /c %s",stredit2);
sprintf(cmdline,"%s",tmp);

if (!CreateProcess(NULL,cmdline,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) //创建子进程
{
AfxMessageBox("CreateProcess Failed!");
return ;
}
if(fclose(fp) == 0)
MessageBox("关闭成功!");
if(DeleteFile(".//Mylog12.txt") != 0)
MessageBox("删除成功!");

删除说被另一个进程占用,这个怎么搞啊.谢了!

[解决办法]
你做的太快的,稍微等待一会,那个程序还没有执行完成呢。
尤其是单CPU的系统,那个进程要等几十上百ms才可能开始执行,这段时间C程序早执行很多行了。

WaitForSingleObject(pi.hProcess, INFINITE); //等待进程结束

CloseHandle(pi.hThread); //一定要先关闭句柄
CloseHandle(pi.hProcess);

//再删除文件……


读书人网 >VC/MFC

热点推荐