捕获 system() 数据的 C 代码

标签 c linux system

如何捕获 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/

相关文章:

linux - 如何将文件从本地 vagrant 复制到本地系统?

C++ 通过调用 system() 获取变量集

Android系统杀死我的服务中的serversocket

c - 如何离开(中断)waitpid()函数?

c - 将结构数组作为函数参数传递

Linux bat 文件命令行参数 :unexpected EOF while looking for matching `"'

linux - Suse中的malloc/free算法

c - 读取 C 中的按键;前任。 : Arrow keys, 回车键

php - C 相当于 PHP `date(' YmdHis')`

linux - Linux 中如何管理应用程序?