|
|
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.