读书人

关于匿名管道的输出重定向有关问题

发布时间: 2012-04-25 19:32:32 作者: rapoo

关于匿名管道的输出重定向问题
父进程是windows服务程序,一个win32控制台程序作为子进程。需要子进程的输出重定向到父进程中,使用windows匿名管道,发现子进程的输出要等到该进程退出后才能被父进程读取到,此外,子进程单独运行很正常,但是在父进程里创建后,使用管道读取时,发现占用CPU很高,而父进程占用CPU很正常,很难理解是父进程的读取函数被锁住了,因为父进程并没有CPU占用异常。
代码:

。。。
创建管道...
CreateProcess(......);
。。。

//读取线程
...
while (true)
{
Sleep(20);
ReadFile(hReadPipe,buffer,4095,&bytesRead,NULL);
.......
}
...


[解决办法]
只看到你的ReadFile了,有写WriteFile,匿名管道的话,必须有两个管道,一个负责读,一个负责写的,不然就会出现貌似阻塞的问题,我以前也出过类似问题,后来发现自己根本就没有创建写的管道

读书人网 >VC/MFC

热点推荐