如何从 C 程序和 Ubuntu OS 读取远程设备的文件?

How to read a file from a remote device from C program and Ubuntu OS?

我正在尝试读取位于远程设备的文件,它有 Debian OS。 我的 C 程序是 运行 on Ubuntu with Eclipse。这两个设备通过 USB 电缆连接。我可以从我的控制台使用 ssh 访问远程设备,例如 ssh root@192.168.7.2。 现在我想从我的 C 程序访问远程设备根目录下的文件。我试过 FILE *ptr = popen("ssh root@192.168.170.155:/1.jpg", "r");。它不起作用。 访问文件以便我可以从我的 C 程序读取文件的正确方法是什么?或者有更好的方法吗? 谢谢

恐怕没那么简单。 unix filepipe API 用于处理本地文件 - 即。 OS 运行 的实例可以访问的文件。为了读取远程机器上的文件——可以通过 ssh 访问,需要更多的参与。通常 - 选择是

  1. 运行 一个 NFS - 远程机器是一个 NFS 服务器,你的机器是 NFS 客户端,然后你可以正常工作,openreadwrite在您的本地计算机上。
  2. 其他选项是以编程方式实现 ssh 或其他协议所做的事情。参与度稍微高一点。所以该选项不可用。

根据您要对文件执行的操作,可能还有第三种选择 - 即 运行 一个 scp in system 函数中的 c 程序,然后复制在本地文件并做任何你想对文件做的事情。

这些是广泛的选择。如果您能具体说出 - 'what you want to do with the file data',可能还有其他选项可用。