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