#include #include #include /* * list all the data in a gdbm file */ int main(int ac, char **av) { GDBM_FILE gdbf; /* file objct ptr */ datum key, content; /* key and content */ int status = 0; gdbm_count_t num_records; size_t num_buckets; if ( ac != 2 ){ fprintf(stderr,"usage: %s DBFILE\n"), av[0]); return 2; } gdbf = gdbm_open( av[1], 0, GDBM_READER, 0, NULL ); if ( gdbf == NULL ){ fprintf(stderr, "cannot open database: %s\n", gdbm_strerror(gdbm_errno); return 2; } if ( gdbm_count( gdbf, &num_records) == -1 ){ fprintf(stderr, "cannot get count: %s\n", gdbm_strerror(gdbm_errno); } if ( gdbm_bucket_count( gdbf, &num_buckets) == -1 ){ fprintf(stderr, "cannot get count: %s\n", gdbm_strerror(gdbm_errno); } printf("%d Records, %d Buckets\n", num_records, num_buckets); gdbm_close( gdbf ); return 0; }