diff options
Diffstat (limited to 'tee.c')
-rw-r--r-- | tee.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -23,6 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "internal.h" | 25 | #include "internal.h" |
26 | #include <errno.h> | ||
26 | #include <stdio.h> | 27 | #include <stdio.h> |
27 | 28 | ||
28 | static const char tee_usage[] = | 29 | static const char tee_usage[] = |
@@ -38,7 +39,7 @@ static const char tee_usage[] = | |||
38 | /* FileList _______________________________________________________________ */ | 39 | /* FileList _______________________________________________________________ */ |
39 | 40 | ||
40 | #define FL_MAX 1024 | 41 | #define FL_MAX 1024 |
41 | static FILE *FileList[FL_MAX]; | 42 | static FILE **FileList; |
42 | static int FL_end; | 43 | static int FL_end; |
43 | 44 | ||
44 | typedef void (FL_Function) (FILE * file, char c); | 45 | typedef void (FL_Function) (FILE * file, char c); |
@@ -99,6 +100,11 @@ int tee_main(int argc, char **argv) | |||
99 | } | 100 | } |
100 | 101 | ||
101 | /* init FILE pointers */ | 102 | /* init FILE pointers */ |
103 | FileList = calloc(FL_MAX, sizeof(FILE*)); | ||
104 | if (!FileList) { | ||
105 | fprintf(stderr, "tee: %s\n", strerror(errno)); | ||
106 | exit(1); | ||
107 | } | ||
102 | FL_end = 0; | 108 | FL_end = 0; |
103 | FileList[0] = stdout; | 109 | FileList[0] = stdout; |
104 | for (; i < argc; i++) { | 110 | for (; i < argc; i++) { |
@@ -119,7 +125,8 @@ int tee_main(int argc, char **argv) | |||
119 | 125 | ||
120 | /* clean up */ | 126 | /* clean up */ |
121 | FL_apply(tee_fclose, 0); | 127 | FL_apply(tee_fclose, 0); |
128 | free(FileList); | ||
122 | exit(0); | 129 | exit(0); |
123 | } | 130 | } |
124 | 131 | ||
125 | /* $Id: tee.c,v 1.6 2000/02/08 19:58:47 erik Exp $ */ | 132 | /* $Id: tee.c,v 1.7 2000/03/08 00:14:35 beppu Exp $ */ |