popen函数执行命令后,返回一个指向该命令输出的文件句柄,接下来就可以用fgets等文件操作函数去读取输出结果。
#include<stdio.h>
#include<string.h>
int main(int argc,char*argv[]){
FILE *fstream=NULL;
char buff[1024];
memset(buff,0,sizeof(buff));
if(NULL==(fstream=popen("ls -l","r")))
{
fprintf(stderr,"execute command failed: %s",strerror(errno));
return -1;
}
if(NULL!=fgets(buff, sizeof(buff), fstream))
{
printf("%s",buff);
}
else
{
pclose(fstream);
return -1;
}
pclose(fstream);
return 0;
}
另外一种获取方式:
命令行下执行shell命令后,将结果写到某个文件。
# ls -l > /tmp.txt