#include <db_cxx.h> #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]) { if(argc != 2) { cerr <<"err args: cmd filename/n"; return -1; } string f(argv[1]); Db db(NULL, 0); int ret = db.open(NULL, f.c_str(), NULL, DB_BTREE, DB_RDONLY, 0); if(ret != 0) { db.close(0); cerr <<"can not open bdb file: " << f << endl; return -1; } Dbc *dbcp; Dbt key, data; ret = db.cursor(NULL, &dbcp, 0); if(ret != 0) { cerr <<"BogoData can't create curson for bdb file"; db.close(0); return -1; } try { for(ret=dbcp->get(&key, &data, DB_FIRST); ret==0; ret=dbcp->get(&key,&data,DB_NEXT)) { uint32_t *v = (uint32_t *)data.get_data(); string token_key = ""; token_key.append((char*)key.get_data(), key.get_size()); cout <<token_key <<"/t||||/t" << v[0] <<"/t||||/t" << v[1] << endl; } }catch(DbException& e) { dbcp->close(); db.close(0); cerr <<"error. failed to read bdb/n"; return -1; } dbcp->close(); db.close(0); return 0; } g++ -g -o xx x.cpp -ldb_cxx