C / C ++:压缩(gz)数据而不使用临时文件

时间:2014-02-17 10:03:29

标签: c++ c compression gzip zlib

我在数组中有一些数据,

uchar *data = "Data to be compressed."; [Some data]

我想压缩( gz )这些数据并在缓冲区中输出。

uchar gzData[MAX_LEN];

一种方法是:

 1. Creating a `ogzstream` object.
 2. Writing this data into a temporary file
 3. close the temporary file.
 3. Create a `ifstream` object.
 4. Read the temporary file into buffer using ifstream object .

但我不想使用临时文件,因为它会减慢整个过程。

有没有直接的方法来压缩这些数据而不使用任何中间文件?

1 个答案:

答案 0 :(得分:0)

您可以使用过滤streambuf即时执行此操作。这很容易做到,但是Boost :: Iostreams已经为你完成了。