0

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

因为,execlp在成功的命令运行时替换调用进程的图像(这将是这种情况ssh),据了解,在调用进程中无法知道ssh连接是否成功建立。

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

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

4

1 回答 1

0

为了节省自己所有的管道设置,我使用 popen()运行ssh. 所以是的,如果没有其他办法,我可能不得不走不那么懒惰的道路。… waitpid()…</p>

您不必走不那么懒惰的道路。 man popen

pclose()函数等待相关进程终止并返回wait4(2) 返回的命令的退出状态。

于 2018-01-30T09:56:31.237 回答