12345678910111213141516171819202122232425262728293031323334353637 |
- #include <fstream>
- #include <ios>
- #include <iostream>
- #include <boost/integer_traits.hpp>
- #include <boost/archive/binary_iarchive.hpp>
- void usage(const char * program_name){
- std::cout << "usage:";
- std::cout << program_name << " filename" << std::endl;
- }
- int main(int argc, char *argv[]){
- if(argc != 2){
- std::cout << "invalid number of arguments" << std::endl;
- usage(argv[0]);
- return 1;
- }
- std::filebuf fb;
- fb.open(
- argv[1],
- std::ios_base::binary | std::ios_base::in | std::ios_base::out
- );
- if(!fb.is_open()){
- std::cout << argv[1] << " failed to open" << std::endl;
- return 1;
- }
- boost::archive::binary_iarchive ia(fb);
- boost::archive::library_version_type lvt = ia.get_library_version();
- if(boost::archive::library_version_type(6) != lvt){
- std::cout << "library version not equal to six" << std::endl;
- return 1;
- }
- lvt = boost::archive::library_version_type(7);
- fb.pubseekpos(26, std::ios_base::out);
- fb.sputn(reinterpret_cast<const char *>(& lvt), sizeof(lvt));
- fb.close();
- }
|