首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用库同步函数打开远程文件?

如何使用库同步函数打开远程文件?
EN

Stack Overflow用户
提问于 2015-02-25 16:44:25
回答 2查看 2.2K关注 0票数 2

我使用图书同步库来维护文件版本。我无法从网络中打开文件。

示例(创建签名文件):

代码语言:javascript
复制
int main(int argc, char** argv)//FILE *original, FILE *signature)
{
    if(argc != 2)
    {
        cout<<"Enter the original file name."<<endl;
        exit(1);
    }

    FILE *fpa;
    fpa = fopen(argv[1],"r");

    if(fpa==NULL)
    {
        cout<<"ERROR"<<endl;
        exit(1);
    }

    FILE *fps;
    fps = fopen("sig.sig","w+");


    rs_result res = rs_sig_file(fpa, fps, 1,2,NULL);

    fclose(fpa);
    fclose(fps);

    printf("Result code: %d\n", res);

    return 0;
}

当我在网络上使用文件的参数运行程序时,例如:

代码语言:javascript
复制
./a.out cs1130218@palasi.cse.iitd.ernet.in:games.txt

平安险无效。

我想fopen不是为在网络上打开文件而创建的。我需要一个能做到这一点的命令。c/c++中的任何命令。你可以清楚地看到我想用这个节目做什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-25 19:56:00

“我需要一个可以在网络上打开文件的命令”是一个非常非常高级的操作,因此,它掩盖了所有的细节:应该使用什么样的网络协议?应该如何处理身份验证?如何处理网络错误?文件打开后应该做些什么:读/写/读/写,顺序还是随机?

图书同步相对较低,甚至不试图自己回答这些问题。它的自述解释道:

库同步不实现rsync连接协议。如果您想要与rsync服务器通信以传输文件,则需要向rsync发送文件。库同步用于构建与rsync一样高效传输文件的其他程序。您可以使用库同步制作备份工具,向程序分发二进制修补程序,或将目录同步到服务器或对等服务器之间。

要通过网络打开文件,您需要实现您自己的服务器和有线协议,或者您需要执行像rsync这样的命令,这些命令为您处理这些细节(而且,如果您的大部分逻辑都是针对其他命令的,那么C++可能不是完成这项工作的最佳工具)。

票数 4
EN

Stack Overflow用户

发布于 2015-03-02 06:02:58

librsyncfopen都不处理远程文件。

看一下使用像GVFS或KIO这样的虚拟文件系统库:它们可以在SFTP上打开文件,然后您可以将它们传递给库同步。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28724686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档