首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gzip内容如何存储在文件中?

gzip内容如何存储在文件中?
EN

Stack Overflow用户
提问于 2021-08-21 09:54:08
回答 1查看 180关注 0票数 0

我能够用"gzip“格式压缩某些内容,并将其存储在文件中。此内容可以在我的代码中以编程方式解压。

但我不能用命令行或其他工具“武装”他们。例如:"Hello“(11个字节)被正确地压缩为'test.txt.gz',但是在双击或命令行时,它会产生以下错误:

另一方面,如果我将相同的内容存储在.txt文件中并将其gzip存储到.txt中,那么它将被正确地解压。

将gzip内容存储到文件中的正确方法是什么?

下面是用于压缩/解压缩的C++14源代码 (参见:用GZip压缩字符串使用qCompress?)。

六角转储 (xxd -p /home/milind/Desktopp/test.txt.gz):

1f8b080000000000000b789cf348cdc9c95728cf2fca49010018ab043d52 9ed68b0b000000

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-23 17:46:32

问题是,您编写了一个gzip头,然后使用一个zlib格式流跟踪它!您需要在gzip头后面使用原始的平放数据,而不需要zlib格式的包装。

不要使用compress2(),它只能生成zlib流。使用zlib.h中记录的deflate函数。您可以请求释放产生一个gzip流,因此您不需要自己编写标头,也不需要自己计算CRC-32。这都是由zlib提供的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68871929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档