首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用库同步库时分割故障

在使用库同步库时分割故障
EN

Stack Overflow用户
提问于 2014-07-30 07:20:43
回答 1查看 498关注 0票数 0

我有两个基本文件filea.txtfileb.txt。尝试创建签名,然后使用签名和fileb.txt创建增量,然后使用该增量修补filea.txt。生成的文件的内容应该与fileb.txt相同

第一部分从filea.txt创建签名文件。

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>
#include "librsync.h"

int main(){
    FILE *fpa;
    fpa = fopen("filea.txt","r");

    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;
}

然后,第二个应该使用带有fileb.txt文件的签名来创建增量文件。

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>
#include "librsync.h"


int main(){
    FILE *fpb;
    fpb = fopen("fileb.txt", "r");

    FILE *fpd;
    fpd = fopen("delta.delt","w+");

    FILE *sigFile;
    sigFile = fopen("sig.sig","r");

    rs_signature_t *signature;

    rs_loadsig_file(sigFile, &signature, NULL);

    rs_result res = rs_delta_file(signature, fpb, fpd, NULL);

    printf("Result: %d", res);

    fclose(fpb); fclose(fpd); fclose(sigFile);

    return 0;
}

我正在编译它们,比如gcc -o create_delta.c -Wall -g -lrsync

但第二部分给出了分割故障的误差。

可能正因为如此,第三个可执行文件生成空文件:

代码语言:javascript
复制
int main() {
    FILE *fpd;
    fpd = fopen("delta.delt", "r");

    FILE *fpa;
    fpa = fopen("filea.txt", "r");

    FILE *fpn;
    fpn = fopen("file_new.txt", "w+");

    rs_patch_file(fpa, fpd, fpn, NULL);

    fclose(fpd); fclose(fpa); fclose(fpn);

    return 0;
}

UPDATE尝试在fopen没有捕获任何错误后检查文件指针是否为null。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-30 12:05:07

在看了h.html之后,我觉得你必须用

Rs_build_hash_table(签名)

在打电话之前

Rs_delta_file(签名,fpb,fpd,NULL);

对我来说挺好的。

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

https://stackoverflow.com/questions/25030898

复制
相关文章

相似问题

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