我想连接两个或更多的gzip流,而不需要重新压缩它们.
我的意思是我有A压缩为A.gz和B到B.gz,我想压缩它们到单个gzip(A B).gz,而不用压缩再次使用C或C.
几个注释:
>即使你可以连接两个文件,gunzip会知道如何处理它们,大多数程序将无法处理两个块.
>我曾经看过一个代码示例,只是通过解压文件,然后操作原始文件,这显着快于正常的重新压缩,但仍然需要O(n)cpu操作.
>不幸的是,我找不到这个我曾经发现过的这个例子(仅使用解压缩来连接),如果有人可以指出我会很棒.
注意:它不是this的重复,因为提出的解决方案不符合我的需要.
清除编辑:
我想要将几个压缩的HTML pices并行,并将它们作为一个页面发送到浏览器,根据请求:“Accept-Encoding:gzip”,其中包含“Content-Encoding:gzip”
如果流像cat a.gz b.gz> ab.gz一样简单,Gecko(firefox)和KHTML Web引擎只会获得第一部分(a); IE6不显示任何内容,Google Chrome会正确显示第一部分(a),将第二部分(b)显示为垃圾(根本不解压缩).
只有歌剧处理好这个.
所以我需要创建一个单个gzip流的几个块,并发送它们而不需要重新压缩.
更新:我在zlib的例子中找到了gzjoin.c,它只使用解压缩.问题是解压缩速度还是比较简单的memcpy.
它仍然是更快的4倍,然后最快的gzip压缩.但这还不够.
我需要的是找到我需要与gzip文件一起保存的数据
不运行解压缩程序,如何在压缩期间找到这些数据.