可能重复:
How to execute a command and get output of command within C++?
在我的c ++程序中,我正在使用execv / system运行外部程序。
我想将程序的输出重定向到我程序中的缓冲区,即:
char* buff[some size large enough for any possible output];
system(some program);
//THE PROGRAM I JUST RAN IS A SPECIAL BLACK BOX PROGRAM THAT RUNS
//AND PARSE AN HTTP DUMP FILE AND PRINTS IT TO THE SCREEN WHEN RUNNING
//I WANT THE OUTPUT TO GO A BUFFER IN MY PROGRAM.
//THE IDEA IS TO HAVE THE DATA OF THE OUTPUT ON THE BUFFER RATHER THAN ON A FILE
//have the buffer filled with the output of the program
谢谢: - )
答案 0 :(得分:0)
我不确定是否还有其他方法可以做到这一点,但这就是我想到的
char* buff[some size large enough for any possible output];
system(some program >somefile.txt);
//have the buffer filled with the output of the program
// And redirect it into a file
//Do initial validity checks and open the file
read(somefile.txt,buff,bufflen);
//Read the file
unlink somefile.txt
//Unlink if the file is not needed
将bufflen替换为您要从文件中读取的字节数。
答案 1 :(得分:0)
如果您想读取子流程的输出(至少在POSIX / UNIX / Linux世界中),您应该真正考虑使用管道进行进程间通信。 Stackoverflow上有一个有用的问题/答案,其中包含指向一些好资源的链接:fork(), pipe() and exec() process creation and communication