|
|
1.1 ! root 1: #include "stdio.h" ! 2: #include "cbt.h" ! 3: #define error(x, y) {fprintf(stderr, x, y); exit(1); } ! 4: ! 5: int iflag, rflag; ! 6: char node[NDSZ]; ! 7: char buf[512]; ! 8: extern char *malloc(); ! 9: ! 10: main(argc, argv) ! 11: char **argv; ! 12: { int i, fd; ! 13: hdr *b; ! 14: char *p; ! 15: for(i = 1; i < argc; i++) { ! 16: if(argv[i][0] == '-') { ! 17: for(p = argv[i] + 1; *p; p++) ! 18: if(*p == 'i') ! 19: iflag = 1; ! 20: else if(*p == 'r') ! 21: rflag = 1; ! 22: else ! 23: error("unknown flag %c\n", *p); ! 24: if(i >= argc - 1) ! 25: error("file name?", 0); ! 26: continue; ! 27: } ! 28: if(!iflag) { ! 29: sprintf(buf, "%s.F", argv[i]); ! 30: if((fd = creat(buf, 0666)) < 0) { ! 31: perror(buf); ! 32: exit(1); ! 33: } ! 34: close(fd); ! 35: } ! 36: sprintf(buf, "%s.T", argv[i]); ! 37: if((fd = creat(buf, 0666)) < 0) { ! 38: perror(buf); ! 39: if(!iflag) { ! 40: sprintf(buf, "%s.F", argv[i]); ! 41: unlink(buf); ! 42: } ! 43: exit(1); ! 44: } ! 45: b = (hdr *)node; ! 46: b->kcnt = 0; ! 47: if(iflag) ! 48: b->htype |= INDEX; ! 49: if(rflag) ! 50: b->htype |= READONLY; ! 51: nfree(b) = NDSZ - sizeof(hdr) - sizeof(trailer); ! 52: if(write(fd, node, NDSZ) != NDSZ) ! 53: perror("failed"); ! 54: close(fd); ! 55: } ! 56: exit(0); ! 57: } ! 58: static struct D { struct D *a; char *b;} VER = {&VER,"\n81/8/9:btcreat.c\n"}; ! 59: /*0011011101111110*/
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.