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) 返回的是子进程的状态码