89 lines
1.2 KiB
C
89 lines
1.2 KiB
C
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);
|
|
}
|