📄 tstats.c
字号:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include "ourhdr.h"
#include "db.h"
/* Use the undocmuented _db_hash() function to determine the hash
* statistics of a database. */
void doit(char *);
main(int argc, char *argv[])
{
if (argc != 2)
err_quit("tstats <db>");
doit(argv[1]);
exit(0);
}
long cntr[NHASH_DEF];
void doit(char *pathname)
{
DB *db;
char key[IDXLEN_MAX], *ptr;
hash_t hash;
int i, nrec;
if ( (db = db_open(pathname, O_RDONLY, 0)) == NULL)
err_sys("db_open error");
nrec = 0;
while ( (ptr = db_nextrec(db, key)) != NULL) {
nrec++;
hash = _db_hash(db, key);
cntr[hash]++;
}
printf("total #records = %d\n", nrec);
for (i = 0; i < NHASH_DEF; i++) {
printf("%3d: %6ld\n", i, cntr[i]);
}
if ( (i = _db_checkfree(db)) < 0)
printf("corrupted free list\n");
else
printf("%d records on free list\n", i);
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -