如何捕获 system()
命令的输出?例如 system("ls")
应该让我得到那个目录中的所有文件。我正在使用 linux 机器(如果这有什么不同的话)。我也知道 popen
可用于重定向数据,正如此处已回答的那样
Capturing stdout from a system() command optimally
但我特别想使用 system
命令。有没有什么方法可以在不将输出重定向到像 system("ls >> filename")
这样的文件的情况下做到这一点?
最佳答案
好的,所以我找到了这样做的方法
dup2(out_pipe[1], STDOUT_FILENO);
close(out_pipe[1]);
system(command);
fflush(stdout);
read(out_pipe[0], buffer, MAX_LEN);
这可用于使用管道重定向系统命令的输出
关于捕获 system() 数据的 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31633925/