【问题标题】:How to read a child processes stdout in Windows?如何在 Windows 中读取子进程标准输出?
【发布时间】:2021-03-16 22:43:40
【问题描述】:

我想将在主程序中创建的子进程的标准输出通过管道传输到主进程拥有的输入流中。

我有一个相当于我想做的 java,但我不知道如何在 C++ 中做到这一点

final Process p = Runtime.getRuntime().exec(/* Some process */);
final InputStream reader = p.getInputStream();
final byte[] buf = new byte[4096];
int offset;

while (p.isAlive()) {
   offset = reader.read(buf);
   if (offset == -1)
      break;
   // Do something with buf here
}

【问题讨论】:

标签: c++ windows process io


【解决方案1】:

请在 MSDN 中查看这篇文章:

Creating a Child Process with Redirected Input and Output

【讨论】:

  • 谢谢,我正在调查,发现 _popen 正是我需要的,应该更新了我发现的东西。
  • 请查看How to Answer。特别是“为链接提供上下文”标题下的部分,其内容为 “始终引用重要链接的最相关部分,以防外部资源无法访问或永久脱机。”(虽然 Microsoft在不久的将来不太可能下线,他们过去曾重新安排他们的文档,导致现有链接失效。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-17
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
相关资源
最近更新 更多