int count 1000; int fnumber; int ibuf[259]; int obuf[259]; char fname[100]; char *ifil; char *ofil; main(argc, argv) char *argv[]; { register i, c, f; for(i=1; i<argc; i++) if(argv[i][0] == '-') switch(argv[i][1]) { case '\0': ifil = 1; continue; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': count = number(argv[i]+1); continue; } else if(ifil) ofil = argv[i]; else ifil = argv[i]; if(ifil != 0 && ifil != 1) if(fopen(ifil, ibuf) < 0) { write(2, "cannot open input\n", 18); exit(); } if(ofil == 0) ofil = "x"; loop: f = 1; for(i=0; i<count; i++) do { c = getc(ibuf); if(c < 0) { if(f == 0) fflush(obuf); exit(); } if(f) { for(f=0; ofil[f]; f++) fname[f] = ofil[f]; fname[f++] = fnumber/26 + 'a'; fname[f++] = fnumber%26 + 'a'; fname[f] = '\0'; fnumber++; if(fcreat(fname, obuf) < 0) { write(2, "Cannot create output\n", 20); exit(); } f = 0; } putc(c, obuf); } while(c != '\n'); fflush(obuf); close(obuf[0]); goto loop; } number(str) char *str; { register n; register char *s; n = 0; for(s = str; *s; s++) if(*s>='0' && *s<='9') n = n*10 + *s-'0'; return(n); }