Linux下C语言获取shell脚本输出

2013年5月8日 由 Creater 留言 »

大家都知道在终端可以执行shell命令。比如我要查看磁盘信息

 df -h

如果想输出到文件,还可以

 df -h >file

或者

 df -h | >file

顺理成章,我们可以使用管道来接收shell输出。读过的还在都知道可以用函数创建管道,所以以下的代码即为解决方案:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main()
{
        FILE* fp = NULL;
        char cmd[512];
        sprintf(cmd, "uname -r");
        if ((fp = popen(cmd, "r")) != NULL)
        {
                fgets(cmd, sizeof(cmd), fp);
                fgets(cmd, sizeof(cmd), fp);
                pclose(fp);
        }
                  //0 成功, 1 失败
        printf("cmd is %s\n", cmd);
        return 0;
}
广告位

发表评论

你必须 登陆 方可发表评论.