我有两个 C++ 程序:Program1 和 Program2。我想要做的是让 Program1 运行它的算法来计算它需要的任何东西,然后将所有计算出的信息通过管道传输到 Program2 中,让它使用 Program1 的输出运行它的算法。

如果我可以通过管道传输信息并关闭 Program1 而不必等待 Program2 首先完成,那就太好了。它类似于python中的subprocess.call()

最佳答案

你会想做一些类似的事情:

#include <unistd.h>

int main () {
  // Do stuff for program1
  int pipefds[2];
  if (pipe (pipefds))
    throw 1;
  // Use ``write'' to send binary data to pipefds[0]
  dup2 (pipefds[1], 0);
  execl (/* Put the program2 arguments you want here. */);
  return 1;
}

有了这个,你所需要的就是让 program2 从标准输入中读取所有必要的数据,你就完成了。

关于c++ - C++ 中的子进程命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23330228/

10-11 18:31