使用管道Win32连续读/写数据

时间:2010-07-10 03:37:52

标签: c++ winapi pipe

我正在尝试使用WinAPI在Win32中为命令行程序编写GUI程序(所以请不要使用MFC)。在我目前的尝试中,我正在创建一个输入管道和一个输出管道来读/写数据。但是,当我尝试连续读取程序或者在单次读取后简单地写入时,我的问题就出现了,因为我必须使用“CloseHandle();”。有没有什么好方法,任何人都可以推荐?我需要在从读/写它的整个过程中保持子过程开放。有没有比使用CreatePipe()更好的方法;和CreateProcess();这样做?

的问候,
丹尼斯M。

2 个答案:

答案 0 :(得分:1)

您需要使用Asynchronous I/O

答案 1 :(得分:1)

我不确定我完全理解你的问题。

我假设你已经看过这篇MSDN文章(http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx)并且代码与它类似?

我发现使用重叠的I / O和I / O完成端口来处理管道更容易,所以我编写了一个包装器来正确创建管道(http://www.lenholgate.com/blog/2008/02/process-management-using-jobs-on-windows.html)。