popen函数执行命令后,返回一个指向该命令输出的文件句柄,接下来就可以用fgets等文件操作函数去读取输出结果。
#include <stdio.h>type的参数只能是“r”或"w"
FILE *popen(const char *command, const char *type);
int pclose(FILE *stream);
例如
#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;
}