C/C++:在不使用临时文件的情况下压缩(gz)数据

C/C++: Compressing(gz) data without using temporary file

本文关键字:压缩 情况下 gz 数据 临时文件 C++      更新时间:2023-10-16

我在数组中有一些数据,

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 .

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

有没有直接的方法可以在不使用任何中间文件的情况下压缩这些数据?

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