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

标签 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);

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

最佳答案

您需要使用函数popen而不是system

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

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

关于连接远程主机然后执行系统命令的C程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558607/

相关文章:

c - 编译后整数如何存储在二进制文件中?

c - 使用 16b 值时检测溢出和进位

linux - 通过 ssh 和 xargs 删除文件

perl - 设置 cygwin 终端窗口的大小

linux - 如何在 Linux 中按日期获取最新的目录?

linux - 将确切的异常写入日志文件

c - 运算符优先级 - 表达式评估

c++ - int **a 和 int a[][] 作为 C 和 C++ 中的函数参数之间的确切区别是什么?

python - Paramiko stdout.read给出 “AttributeError: '元组的对象没有属性 'read'”

Bash:意外标记 `else' 附近的语法错误,使用 ssh 的 grep 终端