首页 文章

使用zlib将GZIP压缩到缓冲区中

提问于
浏览
1

我想使用 gzip 压缩内存缓冲区并将压缩的字节放入另一个内存缓冲区 . 我想使用 Content-Encoding: gzip 在HTTP数据包的有效负载中发送压缩缓冲区 . 我可以使用 zlib 轻松地进行deflate压缩( compress() 函数) . 但是,我没有看到我需要的API( gzip ) . zlib API用于压缩和写入文件( gzwrite() ) . 但是,我想压缩并写入缓冲区 .

有任何想法吗?

我在Linux上使用C语言 .

2 回答

  • 2

    不,zlib API确实在内存中使用 deflate 函数提供gzip压缩 . 您需要实际阅读zlib.h中的文档 .

  • 1

    Gzip是一种文件格式,这就是为什么看起来提供的实用程序函数在fd上运行,使用 shm_open() 来创建具有足够内存的fd mmap() . 重要的是,正在写入的数据不具有mmapped区域的限制 .

    将fd传递给 gzdopen() .

    但正如马克在他的回答中建议使用Basic API界面是一种更好的方法 .

相关问题