gpt4 book ai didi

c++ - C++ 中不可靠的 system() 返回值

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:49 26 4
gpt4 key购买 nike

我有一个 C++ 模块,其基本工作是检查远程计算机中是否存在目录。我正在使用 system() 调用相同的 .

ssh user@remote-machine  [ -d  /remote_dir/test] 

这可以很好地给出结果,但测试会间歇性地失败(测试目录始终存在)。

现在可能是什么原因以及如何检查。

  1. 测试成功但得到失败原因(system() 调用不可靠)。
  2. 可能是系统之间的网络问题。如果是,如何检查?

提前致谢。

SKP

最佳答案

  1. 确保您的连接对于指定的 ssh 端口是正常的:

    $ telnet remote-machine 22

它应该显示连接消息,否则什么也没有(意味着本地或远程计算机上的 IP 防火墙不允许 SSH 连接)。

  1. 如果不是首先,则检查凭据以启动“system()”命令。因为如果您从用户“user1”的控制台使用 system() 调用,但在 Linux 系统中模块是从用户“user2”启动的。在这种情况下,无需密码即可访问远程服务器的凭据将失败,因为您为“user1”而不是“user2”创建了 ssh key - 在 /home/(username)/.ssh。对于调试,如果是这样,请使用

    ...system('ls -l ~/.ssh');

如果没有文件,那么你应该为启动这个模块的用户创建连接 key 。

关于c++ - C++ 中不可靠的 system() 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com