使用C++读取远程Linux类型服务器上的文件



我正在使用带有samba文件共享的Raspian构建一个Raspberry Pi的小型网络。我希望每个人都能读/写小文本文件给其他人,以提供一种非常简单的过程协调方法。我正在用一个Pi和一个共享文件测试这个方法,并且可以使用Ubuntu笔记本电脑的桌面文件管理器对它进行读/写。我正在尝试用程序做同样的事情:

#include<string>
#include<iostream>
#include<fstream>
using namespace std;
void read_file () {
string line;

ifstream myfile;
myfile.open("\\192.168.1.78\home\pi\new2.txt");
if (myfile.is_open()){
cout << "file is open" << endl;
getline(myfile, line);
cout<< line << endl;
} else {
perror("Error");
}   
myfile.close();
}
int main(){
read_file();
}

错误消息为"没有这样的文件或目录"。我猜这要么是我没有看到的权限问题(远程文件共享为777(,要么是我引用服务器和文件夹的方式。我试过无数次组合都没有用。

有什么建议吗?

在Ubuntu系统上使用这样的反斜杠路径是行不通的。这在您的文件管理器中起作用的事实可能是因为文件管理器很智能,可以透明地处理装载和路径转换。

您需要做的是自己装载共享文件夹,这样您就可以使用常规的Linux文件路径来打开它。请参阅关于如何使用Samba装载SMB共享的问题:https://unix.stackexchange.com/questions/99065/how-to-mount-a-windows-samba-windows-share-under-linux

最新更新