|
|
researchv9-SUN3(old)
/*
* tee-- pipe fitting
*/
#include <signal.h>
int uflag;
int aflag;
int openf[100];
char in[512];
main(argc,argv)
char *argv[];
{
register i, j;
int r, n;
while(argc > 1 && argv[1][0] == '-') {
switch(argv[1][1]) {
case 'a':
aflag++;
break;
case 'i':
signal(SIGINT, SIG_IGN);
break;
case 'u':
uflag++;
break;
}
argv++;
argc--;
}
n = 0;
while(argc-- > 1) {
if(aflag) {
openf[n] = open(argv[1], 1);
if(openf[n] < 0)
openf[n] = creat(argv[1], 0666);
lseek(openf[n], 0L, 2);
} else
openf[n] = creat(argv[1], 0666);
if(openf[n] < 0) {
puts("tee: cannot open ");
puts(argv[1]);
puts("\n");
} else
n++;
argv++;
}
openf[n++] = 1;
for(;;) {
r = read(0, in, 512);
if(r <= 0)
exit(0);
if(uflag) {
for(j=0; j<r; j++)
for(i=0; i<n; i++)
write(openf[i], &in[j], 1);
} else
for(i=0; i<n; i++)
write(openf[i], in, r);
}
}
puts(s)
char *s;
{
while(*s)
write(2, s++, 1);
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.