ea526b4944
[SVN r65503]
38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
#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();
|
|
}
|