C语言执行命令并获取返回值
工作原理:popen先执行fork,然后调用exec执行cmdstring,并返回一个标准的I/O文件指针。
头文件:#include<stdio.h>
原型:FILE *popen(const char *cmdstring, const char *type)
cmdstring:包含shell命令字符串
type:为”r”时,则文件指针连接到cmdstring的标准输出,也就是代表指向执行shell命令返回的消息,也可以认为链接到stdout
为”w”时,则文件指针连接到cmdstring的标准输入,也可以认为链接到stdin
int pclose(FILE *fp);
fp:为ponen返回的文件指针
返回值:成功返回cmdstring的终止状态;出错返回-1
下面是执行通过popen函数执行shell命令ls的代码
#include <stdio.h> int main () { char c[100]; FILE *fp; fp=popen("systeminfo","r"); while (fgets(c, sizeof(c), fp) != NULL) { printf("%s",c); // puts(c); // fputs(c,fp); } pclose(fp); return(0); }