我在网上查阅了有关通过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);
一旦连接关闭,程序就会继续执行,有没有一种简单的方法可以继续执行?
最佳答案
您需要使用函数popen
而不是system
。
http://linux.die.net/man/3/popen
它运行一个命令,返回一个文件对象,您可以使用 fprintf、fwrite 等函数写入该文件对象,这些命令将通过 ssh 进程到达远程计算机。
关于连接远程主机然后执行系统命令的C程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558607/