微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

命名pipe道问题

是否有一个函数返回时,另一端成功调用pipe道上的ReadFile。 我有2个应用程序在一个命名pipe道上进行通信,一个使用WriteFile在pipe道上发送一个请求,并期望一个答案,所以它调用ReadFile。 问题是应用程序正在读取自己的请求作为答案,因为另一端没有从pipe道中删除它。

有这样的function吗?

我知道另一种方法是使用2个单向pipe道或实现某种或同步通过其他应用程序信号的发送者,当它收到它的消息,但我只是检查是否有一个更简单的方法

在cygwin中同时pipe道的窗口

从程序中测量内存使用的最佳方式是什么?

在Windows上,内存中的数据是否可以跨虚拟内存页面连续存在?

叉()在iPhone上

Linux软件包在哪里下载完整的依赖列表

Linux同步()等效的Windows API

pipe道input/输出

虚拟机networking适配器没有在hyperv虚拟机中检测到

函数处理程序中直接使用写入函数用户空间缓冲区(Linux,Kernel)保存内存?

awk,pipe道和尾巴-f给予意想不到的行为

我认为你正在寻找的方法是PeekNamedPipe 。 此功能将允许您查看管道而不删除数据。 你可以用它来检查你刚刚发送的信息是否仍然在管道中。 如果是这样,那么另一端还没有读取消息。

总的来说,我认为你最好用一个信号或两个单向管。 它们更适合于双向通信。

你的设计本身就容易出现竞争状况,我会敦促你使用两个管道。 特别是,你有没有考虑过当两个进程想要写入同一个管道时会发生什么?

这就是说…你可以使用一个事件来同步。 在完成WriteFile()之后,您可以等待事件发出信号。 当另一端完成ReadFile()时,它可以SetEvent() 。 如果两端有明确的合同,不会相互竞争或僵持不下,那可能会奏效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐