2 * dba dbm analysis/recovery
24 name = (char *) malloc((n = strlen(p)) + 5);
26 strcpy(name + n, ".pag");
28 if ((pagf = open(name, O_RDONLY)) < 0)
29 oops("cannot open %s.", name);
34 oops("usage: %s dbname", progname);
49 while ((b = read(pagf, pag, PBLKSIZ)) > 0) {
55 if (!(e = pagestat(pag)))
64 printf("%d pages (%d holes): %d entries\n", n, o, t);
66 oops("read failed: block %d", n);
74 register short *ino = (short *) pag;
77 printf("no entries.\n");
79 free = ino[n] - (n + 1) * sizeof(short);
80 printf("%3d entries %2d%% used free %d.\n",
81 n / 2, ((PBLKSIZ - free) * 100) / PBLKSIZ, free);