c++调用shell命令

system()这个函数就不说了,不能读取返回值。

#include<cstdio>

int main()
{

        FILE *fp;
        char buffer[1024]={0};
        fp=popen("ssh root@192.168.1.93 \'ls /\'","r");
        fread(buffer,1,sizeof(buffer),fp);
        printf("%s",buffer);
        pclose(fp);
}

切记不能用fgets,遇到换行符就傻逼了

注意:

popen的第二个参数值为"r"和"w" ,怎么理解 ,当值为 "r"时,fread才可以读到值,值为”w",把值输出到标准输出流

pclose(fp) 返回的是子进程的状态码

posted @ 2015-02-27 14:09  高兴的博客  阅读(4934)  评论(0编辑  收藏  举报