У меня есть код, который читает из файла, сжатого bzip2, используя функции совместимости zlib . Это работает в принципе, но оказывается, что чтение останавливается ровно после 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);