Windows 匿名管道 数据丢失

5 篇文章 0 订阅
5 篇文章 0 订阅

最近做一个 Video Capture 的测试程序,从 MSDN 现学,代码重写改了3遍,从 VFW 到 DirectShow 再到 Media Foundation,输出一直有问题。

今天终于找到原因了。

A.exe | B.exe

我在 A.exe 用 fwrite 把数据写到 stdout,然后 B.exe 从 stdout 读数据,就在这里会有数据丢失。A.exe > test.data 仍然不行。

今天试着不往 stdout 写了,直接写到文件里,居然一点错误都没有。好吧,不知道 Windows 下的 pipe 有什么问题。难道是不支持 binary mode 吗?又或者buffer 太小,超过了就丢失数据?为了让 B.exe 能够读数据,只能建立 Named Pipe 了。Linux 下可以直接用 fifo,WIndows 下就用 CreateNamedPipe 吧,无非是多用两个 API 而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值