diff --git a/cxx/tests/db_dump.cpp b/cxx/tests/db_dump.cpp new file mode 100644 index 00000000000..dda581baf2b --- /dev/null +++ b/cxx/tests/db_dump.cpp @@ -0,0 +1,82 @@ +#include +#include + +void hexdump(Dbt *d) { + unsigned char *cp = (unsigned char *) d->get_data(); + int n = d->get_size(); + printf(" "); + for (int i=0; iget(&key, &val, DB_NEXT); + if (r != 0) break; + // printf("%.*s\n", key.get_size(), (char *)key.get_data()); + hexdump(&key); + free(key.get_data()); + // printf("%.*s\n", val.get_size(), (char *)val.get_data()); + hexdump(&val); + free(val.get_data()); + } + r = cursor->close(); assert(r == 0); + r = db.close(0); assert(r == 0); +#if USE_ENV + r = env.close(0); assert(r == 0); +#endif + return 0; +} + +int usage() { + printf("db_dump [-s DBNAME] DBFILE\n"); + return 1; +} + +int main(int argc, char *argv[]) { + int i; + + char *dbname = 0; + for (i=1; i= argc) + return usage(); + dbname = argv[i]; + continue; + } + break; + } + + if (i >= argc) + return usage(); + return dbdump(argv[i], dbname); +} +