首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-01-14 
匿名管道跨进程通信利用匿名管道捕获子进程的控制台输出。然后利用ReadFile来读取管道内容。发现个问题是Rea

匿名管道跨进程通信
利用匿名管道捕获子进程的控制台输出。然后利用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);
}

热点排行