连接到远程主机然后执行系统命令的C程序

时间:2013-12-13 03:31:38

标签: c ssh terminal

我在网上浏览过通过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);

一旦连接关闭,程序就会继续执行,是否有一种简单的方法可以让执行继续执行?

1 个答案:

答案 0 :(得分:4)

您需要使用popen功能代替system

http://linux.die.net/man/3/popen

它运行一个命令,返回一个可以用fprintf,fwrite等函数写入的文件对象,这些命令将通过ssh进程到达远程计算机。