我有两个 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/