|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <gdbm.h> ! 3: #include <sys/file.h> ! 4: #include <ctype.h> ! 5: ! 6: extern int gdbm_errno; ! 7: ! 8: main (argc, argv) ! 9: int argc; ! 10: char **argv; ! 11: { ! 12: GDBM_FILE db; ! 13: datum key, content; ! 14: char buf[4096], kbuf[256]; ! 15: char *bp, *rc; ! 16: int buflen, len; ! 17: char type[80], version[256]; ! 18: char gfname[1024]; ! 19: char *TidyString(); ! 20: ! 21: if ( argc != 2 ) { ! 22: printf("usage: %s edbdbmfile\n", argv[0]); ! 23: exit(1); ! 24: } ! 25: ! 26: strcpy(gfname, argv[1]); ! 27: strcat(gfname, ".gdbm"); ! 28: if ( (db = gdbm_open(gfname, 0, GDBM_READER, 0, 0)) == NULL ) { ! 29: printf("Can't open (%s)\ndbm_error is (%d)\n",gfname,gdbm_errno); ! 30: exit(1); ! 31: } ! 32: ! 33: key.dptr = "HEADER"; ! 34: key.dsize = sizeof("HEADER"); ! 35: content = gdbm_fetch(db, key); ! 36: if ( content.dptr == NULL ) ! 37: printf("No header! Continuing...\n"); ! 38: else ! 39: printf("%s\n", content.dptr); ! 40: ! 41: for ( key = gdbm_firstkey(db); key.dptr; key = gdbm_nextkey(db, key) ) { ! 42: if ( strcmp(key.dptr, "HEADER") == 0 ) ! 43: continue; ! 44: ! 45: content = gdbm_fetch(db, key); ! 46: printf("%s", content.dptr); ! 47: free(content.dptr); ! 48: content.dptr = NULL; ! 49: } ! 50: ! 51: (void) gdbm_close(db); ! 52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.