#include #include #include #include int main(int argc, char *argv[]) { PROG = "cdbdump"; if (argc != 1) strerr_dieusage(100, "cdbdump < CDB"); cdb c = CDB_ZERO; cdb_init_fromfd(&c, 0); cdb_data key, data; uint32_t pos = CDB_TRAVERSE_INIT(); for (;;) { int r = cdb_traverse_next(&c, &key, &data, &pos); if (!r) break; if (r < 0) strerr_diefusys(111, "read cdb"); char uintbuf[sizeof("4294967295")]; buffer_put(buffer_1, "+", 1); uintbuf[uint32_fmt(uintbuf, key.len)] = 0; buffer_puts(buffer_1, uintbuf); buffer_put(buffer_1, ",", 1); uintbuf[uint32_fmt(uintbuf, data.len)] = 0; buffer_puts(buffer_1, uintbuf); buffer_put(buffer_1, ":", 1); buffer_put(buffer_1, key.s, key.len); buffer_put(buffer_1, "->", 2); buffer_put(buffer_1, data.s, data.len); buffer_put(buffer_1, "\n", 1); buffer_flush(buffer_1); } cdb_free(&c); return 0; }