【问题标题】:creating a gzip file in memory looking for cpp example在内存中创建一个 gzip 文件以查找 cpp 示例
【发布时间】:2011-11-22 01:13:24
【问题描述】:

我正在使用 zlib 压缩数据,但我需要在内存中创建一个有效的 gzip 文件。

我该如何正确地做到这一点?

我需要将文件放在内存中,但我不确定如何在不写入磁盘的情况下组装它。

我环顾四周,但没有一个明确的方法可以说明。

我知道有一个 gz_header,但我不确定偏移量在文件中的位置或如何处理。貌似也有预告片吧?

【问题讨论】:

  • 建议:你问了很多问题,但没有一个接受。试着检查你的问题,看看哪个真正回答了你想要的,然后接受这些答案。
  • 抱歉没有意识到。我已经标记了我可以标记的。

标签: c++ gzip zlib


【解决方案1】:

您可以使用Boost.Iostream with Gzip filters 来压缩数据。您可以修改示例以使用内存流而不是文件流。

【讨论】:

  • 我不确定如何使用他们的库。我试图“包含核心组件”hpp 文件,但我的 make 文件出现了很多奇怪的错误。我认为我需要构建他们的库,而不仅仅是在我的库中包含标题来使用这些功能。
  • 我收到此错误:错误:“filtering_streambuf”未在此范围内声明。我只是在复制他们的示例并通过我的 makefile 包含该文件夹。我正在更改的代码是古老的遗留 c++,所以我不确定是否可以递归地告诉它检查子文件夹中的包含文件。
  • 使用命名空间 boost::iostreams; // 添加了这一行。修复了错误。现在开始弄清楚如何使用他们的图书馆
  • 恭喜您决定使用 Boost。您已经朝着更好的 C++ 代码迈出了一步。享受吧!
猜你喜欢
  • 1970-01-01
  • 2012-08-20
  • 2014-06-30
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
相关资源
最近更新 更多