我有使用zlib compatibility functions从bzip2压缩文件中读取的代码。原则上这是可行的,但事实证明,读取恰好在900,000字节后停止,这是压缩期间使用的块大小。 我如何使用这些功能读取越过块边界,进入下一个块?
以下是一些非常基本的测试代码(已删除错误处理):
BZFILE *h = BZ2_bzopen("file.bz2", "rb");
while( auto n = BZ2_bzread(h, buf, 1024) ) {
printf("%d bytes read\n",n);
ntot += n;
}
BZ2_bzclose(h);
printf("%ld bytes read\n",ntot);