• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    5年前 (2013-05-08)  Linux应用 |   抢沙发  27 
    文章评分 0 次,平均分 0.0

    大家都知道在终端可以执行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;
    }
     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/1075.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享