关于管道的问题
问题描述如下:
用CreateProcess创建一个新的进程执行一个特定的命令,将结果存入管道
然后利用一个循环从管道中读取结果,当结果的数据量不大时一切正常
当结果数据很多,需要多次循环时会出现问题
执行到某一个特定的点时,程序会死在一个地方,而且无法用断点跟踪到
不知是什么原因
贴出部分代码,忘各位帮忙,怀疑是我的管道用错了
CreateProcess(NULL,chCommand,&sa, &sa,TRUE,NULL, NULL,curWorkspace.c_str(),&siStartInfo,&piProcInfo);//创建新线程
//读取管道部分代码
while(true)
{
bool success = ReadFile(hStdOutRead,buffer,cacheLen,&dwRead,NULL);
if(success)
{
buffer[dwRead] = 0;
fout<<buffer;
}
else
{
break;
}
}
//等待一定时间后杀死进程
WaitForSingleObject(piProcInfo.hProcess,60 * 1000);
TerminateProcess(piProcInfo.hProcess,0);
[解决办法]
CreateProcess(NULL,chCommand,&sa, &sa,TRUE,NULL, NULL,curWorkspace.c_str(),&siStartInfo,&piProcInfo);//创建新线程
-----------
?
笔误?
进程!