doCmd函数

 string doCmd(string cmd){
    const int MAXLINE = 1024;
    char result_buf[MAXLINE] = "";
    int rc = 0; 
    FILE *fp;
    fp = popen(cmd.c_str(), "r");

    if(NULL == fp){
        perror("popen failed!");
        exit(1);
    }
    while(fgets(result_buf, sizeof(result_buf), fp) != NULL){
        if('\n' == result_buf[strlen(result_buf)-1])
        {
            result_buf[strlen(result_buf)-1] = '\0';
        }
    }

    rc = pclose(fp);
    if(-1 == rc){
        perror("close file failed");
        exit(1);
    } else {
        printf("status:%d return %d\n", rc, WEXITSTATUS(rc));
    } 
    return string(result_buf);
 }

linux C程序中获取shell脚本输出 http://blog.chinaunix.net/uid-23381466-id-58497.html
基于管道的popen和pclose函数http://my.oschina.net/renhc/blog/35116


ccj 于 2015-10-20 23:30 修改
0 回复
需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。