Commit | Line | Data |
---|---|---|
42d6e430 BJ |
1 | #include "stdio.h" |
2 | #include "signal.h" | |
3 | #include "lrnref" | |
4 | ||
5 | static int oldout; | |
6 | static char tee[50]; | |
7 | ||
8 | maktee() | |
9 | { | |
10 | int fpip[2], in, out; | |
11 | ||
12 | if (tee[0] == 0) | |
13 | sprintf(tee, "%s/tee", direct); | |
14 | pipe(fpip); | |
15 | in = fpip[0]; | |
16 | out= fpip[1]; | |
17 | if (fork() == 0) { | |
18 | signal(SIGINT, SIG_IGN); | |
19 | close(0); | |
20 | close(out); | |
21 | dup(in); | |
22 | close(in); | |
23 | execl (tee, "lrntee", 0); | |
24 | fprintf(stderr, "Tee exec failed\n"); | |
25 | exit(1); | |
26 | } | |
27 | close(in); | |
28 | fflush(stdout); | |
29 | oldout = dup(1); | |
30 | close(1); | |
31 | if (dup(out) != 1) | |
32 | fprintf(stderr, "Error making tee for copyout\n"); | |
33 | close(out); | |
34 | return(1); | |
35 | } | |
36 | ||
37 | untee() | |
38 | { | |
39 | int x; | |
40 | ||
41 | fflush(stdout); | |
42 | close(1); | |
43 | dup(oldout); | |
44 | close(oldout); | |
45 | wait(&x); | |
46 | } |