【发布时间】:2011-03-11 11:21:37
【问题描述】:
我正在开发一个程序,该程序从 curl 执行读取标头并搜索特定标头,如果找到,则对内容部分进行压缩并在内容中搜索另一个字符串。我需要实施最后一部分。休息完成。有没有办法从 c++ 程序内部解压缩内容并将结果保存到另一个字符串并搜索该字符串?
代码 sn-ps 会很好。 谢谢。
【问题讨论】:
我正在开发一个程序,该程序从 curl 执行读取标头并搜索特定标头,如果找到,则对内容部分进行压缩并在内容中搜索另一个字符串。我需要实施最后一部分。休息完成。有没有办法从 c++ 程序内部解压缩内容并将结果保存到另一个字符串并搜索该字符串?
代码 sn-ps 会很好。 谢谢。
【问题讨论】:
使用Boost Iostreams。如果buf 是一个包含 gzip 数据的字符串,
namespace io = boost::iostreams;
io::filtering_istream gunzip;
gunzip.push(io::gzip_decompressor());
gunzip.push(std::istringstream(buf));
然后从gunzip读取。
【讨论】:
除了自己实现 gunzip 之外,使用 execv() 调用实际的 gunzip 程序并将输出返回到 stdout(然后将其传递给您的程序)。此外,字符串搜索可能最好使用 Knuth-Morris-Pratt 算法。
【讨论】: