首页 > 技术文章 > C语言执行命令并获取返回值

pfeiliu 2020-08-30 00:06 原文

工作原理: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);
}

推荐阅读