假设我想从程序中调用子进程,并希望将该子进程的输出读取到我的程序中。下面是一种简单的方法:
如何做到这一点?如何跳过I/O操作?
注意:许多程序在运行时会向stdout输出一些诊断信息,并将输出的干净版本写入stdout(例如:stdout:"step1...done, step2...done, step3..done" -o file-out:"The magic number is: 47.28"),因此忽略“-o”参数并相信输出将自动重新定向到stdout并不一定有用...
提前感谢大家的帮助。
//somefile.cpp
system("sub_process arg1 arg2 -o file.out");
//call the subprocess and have it write to file
FILE *f = std::fopen("file.out", "r");
//.... and so on
我们都知道I/O操作在计算机中是比较慢的。为了加速这个过程,我希望能够跳过写入文件再从文件读取的步骤,而是直接将子进程的输出直接重定向到stdin(或其他流)。如何做到这一点?如何跳过I/O操作?
注意:许多程序在运行时会向stdout输出一些诊断信息,并将输出的干净版本写入stdout(例如:stdout:"step1...done, step2...done, step3..done" -o file-out:"The magic number is: 47.28"),因此忽略“-o”参数并相信输出将自动重新定向到stdout并不一定有用...
提前感谢大家的帮助。