从C中的stdout输出系统命令
我正在Android / Linux下编写一个运行系统命令的C程序。 该命令将一些文本输出到stdout,我正在尝试将输出捕获到字符串或字符数组中。
例如:
system("ls");
会将当前目录的内容列为stdout,我希望能够以C编程方式将该数据捕获到C中。
我该怎么做呢?
谢谢。
你想用popen
。 它返回一个流,就像fopen
一样。 但是,您需要使用pclose
关闭流。 这是因为pclose
负责清理与启动子进程相关的资源。
FILE *ls = popen("ls", "r"); char buf[256]; while (fgets(buf, sizeof(buf), ls) != 0) { /*...*/ } pclose(ls);