【问题标题】:Communicate with the stdin/stdout of a child process asynchronously与子进程的 stdin/stdout 异步通信
【发布时间】:2011-06-22 23:33:36
【问题描述】:

我想创建一个子进程,并异步读取它的标准输出。事实证明,我必须创建一个命名管道来连接到标准输出,因为匿名管道不支持异步读取。

我知道函数CreateProcessCreateNamedPipeCreateFileReadFile,但是是否有一些示例代码可以将它们全部连接起来?我被海量参数蒙蔽了双眼。

【问题讨论】:

    标签: c winapi process pipe stdout


    【解决方案1】:

    这是一个执行此操作的示例:

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

    【讨论】:

      【解决方案2】:

      基本上,您将管道句柄添加到 CreateProcess 中的 STARTUPINFO 结构中。

      我想我之前使用过该代码示例: http://msdn.microsoft.com/en-us/library/ms682499(v=vs.85).aspx

      【讨论】:

      • 该代码示例使用匿名管道,它仅适用于同步读取,直到子进程输出某些内容才会阻塞。我不想多线程读取一个简单的文件。
      猜你喜欢
      • 2014-02-14
      • 2012-05-20
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多