使用Boost.Iostreams实现bzip2格式文件流

给偶自己的网站做广告,摘录自http://www.cpp-prog.com/2009/0114/52_2.html片段

 

使用Boost.Iostreams实现流方式的bzip2格式压缩、解压操作。


注: 代码里的file_sinkfile_source有一个更好的替代品是使用file_descriptor_sinkfile_descriptor_source。因为前者会经过std::codecvt界面的编码转换操作,这里我们不需要这种转换,所以后者更合适。不过要麻烦一点的是要在代码里多写几个字母,加一个头文件<boost/iostreams/device /file_descriptor.hpp>以及要在工程中加入文件"<BOOST>/libs/iostreams/src /file_descriptor.cpp"。

 注意:要使上面的程序能正确编译,必须为Boost.Iostreams加入bzip2支持,方法如下:
1.下载bzip2库并解压(http://www.bzip.org)
2.编译bzip2库
    gcc/mingw   进入msys, make -f makefile
    C++ Builder 参考偶的blog
    VC          nmake -f makefile.msc
(默认是多线程DLL调试“-MD”,可以修改makefile.msc7行CFLAGS=里的-MD-MT-MTd-MDd,
然后分别重新编译保存成不同的lib文件备用)
3.在工程中加入BOOST_IOSTREAMS_NO_LIB预定义,
头文件搜索路径里加上bzip2库的路径,并把刚才生成的bzip2库文件和下面这个文件加入工程:
    "<BOOST>/libs/iostreams/src/bzip2.cpp"
4.重新编译
注,Boost.Iostreams也自带了zlib/gz格式的支持,加入zlib支持的方式类似。
更详细方式请参考联机文档

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值