compactdb.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 43 行

C
43
字号
/* * compact a database file */#include "all.h"Db *db;voidusage(void){	fprint(2, "usage: replica/compactdb db\n");	exits("usage");}voidmain(int argc, char **argv){	Avlwalk *w;	Biobuf bout;	Entry *e;	quotefmtinstall();	ARGBEGIN{	default:		usage();	}ARGEND	if(argc != 1)		usage();	Binit(&bout, 1, OWRITE);	db = opendb(argv[0]);	w = avlwalk(db->avl);	while(e = (Entry*)avlnext(w))		Bprint(&bout, "%q %q %luo %q %q %lud %lld\n",			e->name, strcmp(e->name, e->d.name)==0 ? "-" : e->d.name, e->d.mode,			e->d.uid, e->d.gid, e->d.mtime, e->d.length);	if(Bterm(&bout) < 0)		sysfatal("writing output: %r");	exits(nil);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?