zlib可以膨胀读取大型枪械文件吗?

时间:2013-10-29 12:47:10

标签: c zlib

这是我的代码的最新版本。感谢您的zpipe.c,它现在适用于我所有的枪械文件,无论其大小如何。但我不明白的是,在内部循环printf(“%s”,out)仍然打印相同的初始结果(在第一个循环中解压缩的部分)。但在解压缩文件file.txt中,一切正常。一切都是减压正常。我必须在每个内部循环中处理解压缩的输出,实际上我不需要输出文件(file.txt)。

while (1) {
    int bytes_read;

    bytes_read = fread (in, sizeof (char), sizeof (in), file);
    printf("hello");
    FAIL (ferror (file), "read");
    strm.avail_in = bytes_read;
    printf("%i\n",bytes_read);
    getchar();
    if (strm.avail_in==0)
        break;
    strm.next_in=in;
    do {
        strm.avail_out = CHUNK;
        strm.next_out=out;
        CALL_ZLIB(inflate (&strm, Z_NO_FLUSH));

        printf ("%s", out);

        getchar();
        have=CHUNK-strm.avail_out;
        fwrite(out,1,have,f2);     
    } while (strm.avail_out == 0);
    if (feof (file))
    {
        inflateEnd (& strm);
        break;
    }
}

1 个答案:

答案 0 :(得分:2)

您没有在循环中重置next_innext_out。这些都超越了阅读和写作的内容。请阅读zlib.h,然后查看how to use zlib