2011-03-11 59 views
3

我正在研究一个程序,该程序从卷曲执行中读取头文件,并搜索特定头文件,如果找到,则对内容部分进行gunzip并搜索内容中的另一个字符串。我需要实现最后一部分。休息完成。有没有办法从C++程序内部解压缩内容并将结果保存到另一个字符串并搜索该字符串?cURL C++和gunzip

代码片段会很好。 谢谢。

回答

4

使用Boost Iostreams。如果buf是包含gzip压缩数据的字符串,

namespace io = boost::iostreams; 

io::filtering_istream gunzip; 
gunzip.push(io::gzip_decompressor()); 
gunzip.push(std::istringstream(buf)); 

然后从gunzip读取。

0

除了自己实现gunzip,使用execv()调用实际的gunzip程序并将输出返回到stdout(然后传递给您的程序)。此外,字符串搜索可能最好使用Knuth-Morris-Pratt算法完成。