diff options
-rw-r--r-- | coreutils/tee.c | 11 | ||||
-rw-r--r-- | tee.c | 11 |
2 files changed, 18 insertions, 4 deletions
diff --git a/coreutils/tee.c b/coreutils/tee.c index 2f746f9..a3a1c81 100644 --- a/coreutils/tee.c +++ b/coreutils/tee.c @@ -23,6 +23,7 @@ */ #include "internal.h" +#include <errno.h> #include <stdio.h> static const char tee_usage[] = @@ -38,7 +39,7 @@ static const char tee_usage[] = /* FileList _______________________________________________________________ */ #define FL_MAX 1024 -static FILE *FileList[FL_MAX]; +static FILE **FileList; static int FL_end; typedef void (FL_Function) (FILE * file, char c); @@ -99,6 +100,11 @@ int tee_main(int argc, char **argv) } /* init FILE pointers */ + FileList = calloc(FL_MAX, sizeof(FILE*)); + if (!FileList) { + fprintf(stderr, "tee: %s\n", strerror(errno)); + exit(1); + } FL_end = 0; FileList[0] = stdout; for (; i < argc; i++) { @@ -119,7 +125,8 @@ int tee_main(int argc, char **argv) /* clean up */ FL_apply(tee_fclose, 0); + free(FileList); exit(0); } -/* $Id: tee.c,v 1.6 2000/02/08 19:58:47 erik Exp $ */ +/* $Id: tee.c,v 1.7 2000/03/08 00:14:35 beppu Exp $ */ @@ -23,6 +23,7 @@ */ #include "internal.h" +#include <errno.h> #include <stdio.h> static const char tee_usage[] = @@ -38,7 +39,7 @@ static const char tee_usage[] = /* FileList _______________________________________________________________ */ #define FL_MAX 1024 -static FILE *FileList[FL_MAX]; +static FILE **FileList; static int FL_end; typedef void (FL_Function) (FILE * file, char c); @@ -99,6 +100,11 @@ int tee_main(int argc, char **argv) } /* init FILE pointers */ + FileList = calloc(FL_MAX, sizeof(FILE*)); + if (!FileList) { + fprintf(stderr, "tee: %s\n", strerror(errno)); + exit(1); + } FL_end = 0; FileList[0] = stdout; for (; i < argc; i++) { @@ -119,7 +125,8 @@ int tee_main(int argc, char **argv) /* clean up */ FL_apply(tee_fclose, 0); + free(FileList); exit(0); } -/* $Id: tee.c,v 1.6 2000/02/08 19:58:47 erik Exp $ */ +/* $Id: tee.c,v 1.7 2000/03/08 00:14:35 beppu Exp $ */ |