如何知道SSH连接是否失败?

时间:2015-12-28 03:24:51

标签: c ssh execl

我必须在一个单独的进程中运行ssh命令(因此通过execlp)将正在运行的计算机连接到同一本地网络中的另一台计算机。问题是,我必须确定输入的主机名是有效的,以便ssh连接成功。

因为,execlp在成功的命令运行中取代了调用进程的图像(在ssh的情况下就是这种情况),所以,据我们所知,没有办法知道调用进程是否已成功设置ssh连接。

因此,我能想到的这种不方便的行为方式的唯一解决方案是断言要连接的机器的给定主机名是有效的。我怎么能/应该这样做?

(有效的主机名只是一个存在的主机名,当然可以访问,无论是IP地址还是别名)

1 个答案:

答案 0 :(得分:0)

  

为了节省我自己所有的管道设置,我使用   )运行$。所以,是的,如果没有   换句话说,我可能不得不沿着不那么懒惰的道路走下去。 ...   popen() ...

你不必走这条不那么懒惰的道路。 ssh

  

waitpid()函数等待关联的进程终止   和          返回man popen(2)返回的命令的退出状态。