📄 query.c
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include <ndb.h>/* * search the database for matches */voidusage(void){ fprint(2, "usage: query attr value [returned attribute]\n"); exits("usage");}voidsearch(Ndb *db, char *attr, char *val, char *rattr){ Ndbs s; Ndbtuple *t; Ndbtuple *nt; char *p; if(rattr){ p = ndbgetvalue(db, &s, attr, val, rattr, nil); if(p){ print("%s\n", p); free(p); } return; } t = ndbsearch(db, &s, attr, val); while(t){ for(nt = t; nt; nt = nt->entry) print("%s=%s ", nt->attr, nt->val); print("\n"); ndbfree(t); t = ndbsnext(&s, attr, val); }}voidmain(int argc, char **argv){ char *rattr = 0; Ndb *db; char *dbfile = 0; int reps = 1; ARGBEGIN{ case 'f': dbfile = ARGF(); break; }ARGEND; switch(argc){ case 4: reps = atoi(argv[3]); /* fall through */ case 3: rattr = argv[2]; break; case 2: rattr = 0; break; default: usage(); } db = ndbopen(dbfile); if(db == 0){ fprint(2, "no db files\n"); exits("no db"); } while(reps--) search(db, argv[0], argv[1], rattr); ndbclose(db); exits(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -