|
|
1.1 ! root 1: /* read keys from stdin, and delete the records from argv[1] */ ! 2: #include "stdio.h" ! 3: #include "cbt.h" ! 4: ! 5: char buf[NDSZ]; ! 6: bfile *bf; ! 7: mbuf key; ! 8: ! 9: main(argc, argv) ! 10: char **argv; ! 11: { char *p; ! 12: int c = 0; ! 13: if(argc != 2) { ! 14: fprintf(stderr, "usage: delete b-tree < keys\n"); ! 15: exit(1); ! 16: } ! 17: if((bf = bopen(argv[1], 2)) == NULL) { ! 18: perror(argv[1]); ! 19: exit(1); ! 20: } ! 21: key.mdata = buf; ! 22: loop: ! 23: if(c == EOF) { ! 24: bclose(bf); ! 25: exit(0); ! 26: } ! 27: for(p = buf; (c = getchar()) != '\n' && c != EOF; *p++ = c) ! 28: ; ! 29: *p = 0; ! 30: key.mlen = p - buf; ! 31: if(key.mlen == 0) ! 32: goto loop; ! 33: if(!bdelete(bf, key)) ! 34: fprintf(stderr, "not in file:%s\n", buf); ! 35: goto loop; ! 36: } ! 37: static struct D { struct D *a; char *b;} VER = {&VER,"\n81/8/9:btdelete.c\n"}; ! 38: /*0010110100010101*/
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.