zfec是一种前向纠删码,用于给原始数据增加冗余信息,以提高数据的安全性。zfec提供了诸如c、python等语言的接口。在这里只介绍有关c语言的接口。(这篇文章主要是参考学习博客http://www.dullgull.com/2012/07/zfec-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/,但是代码部分是原创的并且保证是正确的)
zfec源代码的下载地址为:http://pypi.python.org/pypi/zfec
1、fec_t :这是一个结构,通过fec_new() 返回可以得到,不用自己初始化。fec->k 是数据块的数目,fec->n 是所有块总数(数据块+校验块)
2、fec_new():初始化,生成fec_t 结构,并给定了k,m(需要重建数据块数,总数据块数)
3、fec_free():释放初始化的空间
4、fec_encode():编码 (具体参数如下)
5、fec_decode():解码 (具体参数如下)
1、fec_t结构:
1: typedef struct {
2: unsigned long magic;
3: unsigned short k, n; /* parameters of the code */
4: gf* enc_matrix; //其中的k是数据块的个数,n是所有块的总数(包括数据块和校验块)
5: } fec_t;
2、fec_new()
1: fec_t* fec_new(
2: unsigned short k, /*原数据块个数,对应编码理论中k */