我有大量“输入”数据要压缩到多个bzip2
流中,而不是将数据写入多个中间文件。
我可以将一大块输入数据放入缓冲区,用于BZ2_bzBuffToBuffCompress()
将该缓冲区压缩为 bzip2 风格的字节,然后在后续BZ2_bzBuffToBuffCompress()
调用新数据时重复此操作,直到我没有更多输入数据?
bzip2 文档说明如下:
以这种方式进行压缩是一次性事件,只需调用此函数即可完成。生成的压缩数据是完整的 bzip2 格式数据流。没有进行额外调用以提供额外输入数据的机制。如果您想要这种机制,请使用低级接口。
这是否意味着我不能BZ2_bzBuffToBuffCompress()
在新填充的缓冲区大小的输入数据块上重新运行?我应该BZ2_bzWrite()
改用吗?
编辑
我实际上的意思是输出到一个存档文件,其中可能包含一个或多个 bzip 流。