读书人

匿名管道跨进程通信解决办法

发布时间: 2012-01-14 20:02:35 作者: rapoo

匿名管道跨进程通信
利用匿名管道捕获子进程的控制台输出。然后利用ReadFile来读取管道内容。发现个问题是ReadFile并不是把所有的输出全都捕获到。最后有一些输出并没有捕获到。如何解决?

PS:子进程有刷新控制台输出缓冲区。

[解决办法]
while (true) {
peeknamedpipe //得到管道有多少数据 要是没有数据还 readfile就阻塞了
if (ReadFile(hOutputRead,buffer,4095,&bytesRead,NULL) == NULL) //
break;
memcpy(p, buffer, bytesRead);
p += bytesRead;
memset(buffer, 0, 4096); // 增加该句

Sleep(200);
}

读书人网 >VC/MFC

热点推荐