我有一个文件,其中包含使用zlib压缩的嵌入式文件。
我知道压缩文件在主文件中的起始位置,并且我有解压缩的文件大小,但不知道压缩文件的结束位置。
我的目标是从包含的文件中提取压缩文件并将其保存为自己的文件。
给定压缩文件的起始位置和解压缩文件大小,有什么能告诉我压缩文件大小或压缩文件结束的位置吗?
现在我从zlib标头传递到EOF到一个膨胀函数。这适用于较小的文件,因为inflate函数将在压缩文件结束后丢弃任何数据,并仅返回解压缩的字节。但是对于压缩文件位于文件顶部附近的较大文件,我的系统没有足够的内存来将大部分文件传递给inflate函数。
zlib流是自终止的。通过解压缩并查看完成后消耗了多少字节,可以找到压缩长度。
你提到一些没有足够内存的东西。主zlib函数一次处理一段流,这是用于解压缩的inflate*
函数。阅读zlib.h。