我在网上浏览过通过c程序执行系统命令,但在连接到远程主机(如此连接提示输入用户密码)后,他们都没有触及执行命令:
sprintf(buffer1,"ssh -l %s %s ",userName,hostName);
system((char*)buffer1);
//Nothing below this executes because the connection has been established
sprintf(buffer2,"shasum sfin.exe > t.sha");
system((char*)buffer2);
一旦连接关闭,程序就会继续执行,是否有一种简单的方法可以让执行继续执行?
答案 0 :(得分:4)
您需要使用popen
功能代替system
。
http://linux.die.net/man/3/popen
它运行一个命令,返回一个可以用fprintf,fwrite等函数写入的文件对象,这些命令将通过ssh进程到达远程计算机。