gpt4 book ai didi

c - 从 C 中的标准输出获取系统命令的输出

转载 作者:太空狗 更新时间:2023-10-29 16:33:59 24 4
gpt4 key购买 nike

我正在 Android/Linux 下编写一个运行系统命令的 C 程序。该命令将一些文本输出到标准输出,我正在尝试将输出捕获到字符串或字符数组中。

例如:

system("ls");

会将当前目录的内容列出到标准输出,我希望能够在 C 中以编程方式将该数据捕获到变量中。

我该怎么做?

谢谢。

最佳答案

您想使用popen。它返回一个流,如 fopen。但是,您需要使用 pclose 关闭流。这是因为 pclose 负责清理与启动子进程相关的资源。

FILE *ls = popen("ls", "r");
char buf[256];
while (fgets(buf, sizeof(buf), ls) != 0) {
/*...*/
}
pclose(ls);

关于c - 从 C 中的标准输出获取系统命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11840833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com