2011-03-11 100 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算法完成。