在 Windows 中创建匿名管道

Posted

技术标签:

【中文标题】在 Windows 中创建匿名管道【英文标题】:Creating Anonymous Pipe in Windows 【发布时间】:2013-05-25 00:18:54 【问题描述】:

我刚开始学习匿名管道通信。我的问题是 AnonymousPipeStream 和 CreatePipe 方法有什么区别。

现在我正在使用 CreatePipe() 创建管道并使用 ReadFile()/WriteFile() 函数读取/写入数据,它工作正常。

但我看到互联网上有很多示例使用流以完全不同的方式创建管道。

每种方法的优势是什么?或者它们不是不同的方法,我的理解是错误的?

参考:

http://msdn.microsoft.com/en-CA/library/system.io.pipes.aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=vs.85).aspx

【问题讨论】:

【参考方案1】:

AnonymousPipeClientStreamAnonymousPipeServerStream 是 C# 类。 CreatePipe 是原始的原生 API。如果您使用纯本机 C 或 C++ 进行编码,则不能调用 C# 代码(至少在没有大量重要工作的情况下不能)。

【讨论】:

以上是关于在 Windows 中创建匿名管道的主要内容,如果未能解决你的问题,请参考以下文章

实验八进程间通信

匿名管道读取CMD回显信息

如何在 Windows 中访问继承的匿名管道句柄,而不是 stdout、stderr 和 stdin?

匿名管道的 ReadFile 函数

Windows IPC:我可以通过匿名管道发送二进制数据吗?

Unix/Linux进程间通信:匿名管道有名管道 pipe()mkfifo()