从标准输出获取输出的系统命令C
问题描述:
我正在编写一个运行系统命令的Android/Linux下的C程序。该命令输出一些文本到标准输出,我试图捕获输出到一个字符串或字符数组。从标准输出获取输出的系统命令C
例如:
system("ls");
会列出当前目录到stdout的内容,我想能够捕获数据到一个变量编程在C
我如何做这个?
谢谢。
答
您想使用popen
。它返回一个流,如fopen
。但是,您需要关闭流pclose
。这是因为pclose
负责清理与启动子进程相关的资源。
FILE *ls = popen("ls", "r");
char buf[256];
while (fgets(buf, sizeof(buf), ls) != 0) {
/*...*/
}
pclose(ls);
谢谢,工作。 – user1118764 2012-08-07 08:06:08