Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用librsync函数打开远程文件?_C++_Librsync - Fatal编程技术网

C++ 如何使用librsync函数打开远程文件?

C++ 如何使用librsync函数打开远程文件?,c++,librsync,C++,Librsync,我使用librsync库来维护文件版本。我无法从网络打开文件 示例(创建签名文件): fpa为空 我猜fopen不是为通过网络打开文件而设计的。我需要一个能做这件事的命令。c/c++中的任何命令。 你可以清楚地看到我想用这个程序做什么。“我需要一个可以通过网络打开文件的命令”是一个非常非常高级的操作,因此,它掩盖了所有的细节:应该使用什么样的网络协议?应该如何处理身份验证?如何处理网络错误?打开文件后应执行哪些操作:读/写/同时执行,顺序还是随机 librsync的级别相对较低,甚至不尝试自己回

我使用librsync库来维护文件版本。我无法从网络打开文件

示例(创建签名文件):

fpa为空

我猜fopen不是为通过网络打开文件而设计的。我需要一个能做这件事的命令。c/c++中的任何命令。 你可以清楚地看到我想用这个程序做什么。

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

librsync的级别相对较低,甚至不尝试自己回答这些问题。说明:

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


在网络上打开文件时,需要实现自己的服务器和有线协议,或者需要向命令(如代码> RSyc><代码>)处理这些细节(并且,如果大多数逻辑都在向其他命令发出攻击,C++可能不是该工作的最佳工具).

无论是
librsync
还是
fopen
都不处理远程文件


请看使用虚拟文件系统库(如或KIO):它们可以通过SFTP打开文件,然后您可以将它们传递给librsync。

您确实有一个名为
的文件吗cs1130218@palasi.cse.iitd.ernet.in:games.txt
a.out
所在的当前目录中?如果没有,这很容易解释为什么
fopen()
无法打开该文件…哦!我把问题框错了!让我纠正一下。是的,这就是我需要的。但是我不能找到任何帮助它在C++中使用。你能帮我一下吗?保险丝可能是最简单的解决办法。但这实际上是一个与librsync不同的问题。我正试图找出如何在我的应用程序中使用
librsync
在远程linux系统上与
rsync
同步。这是否意味着它不会与
rsync
连接,因为它们不是同一件事?@zadane-从我阅读文档中可以看出,不是直接的,除非您自己实现
rsync
协议。
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;
}
./a.out cs1130218@palasi.cse.iitd.ernet.in:games.txt