|
|
1.1 ! root 1: #ifndef lint ! 2: static char sccsid[] = "@(#)maktee.c 4.2 (Berkeley) 4/25/83"; ! 3: #endif not lint ! 4: ! 5: #include "stdio.h" ! 6: #include "signal.h" ! 7: #include "lrnref.h" ! 8: ! 9: static int oldout; ! 10: static char tee[50]; ! 11: ! 12: maktee() ! 13: { ! 14: int fpip[2], in, out; ! 15: ! 16: if (tee[0] == 0) ! 17: sprintf(tee, "%s/bin/lrntee", direct); ! 18: pipe(fpip); ! 19: in = fpip[0]; ! 20: out= fpip[1]; ! 21: if (fork() == 0) { ! 22: signal(SIGINT, SIG_IGN); ! 23: close(0); ! 24: close(out); ! 25: dup(in); ! 26: close(in); ! 27: execl (tee, "lrntee", 0); ! 28: perror(tee); ! 29: fprintf(stderr, "Maktee: lrntee exec failed\n"); ! 30: exit(1); ! 31: } ! 32: close(in); ! 33: fflush(stdout); ! 34: oldout = dup(1); ! 35: close(1); ! 36: if (dup(out) != 1) { ! 37: perror("dup"); ! 38: fprintf(stderr, "Maktee: error making tee for copyout\n"); ! 39: } ! 40: close(out); ! 41: return(1); ! 42: } ! 43: ! 44: untee() ! 45: { ! 46: int x; ! 47: ! 48: fflush(stdout); ! 49: close(1); ! 50: dup(oldout); ! 51: close(oldout); ! 52: wait(&x); ! 53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.