From f2ff0fc85aba7d34a2cfdee58e971748021cb9b5 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Fri, 4 May 2012 10:37:14 +0200 Subject: [PATCH] fex2bin: open and close input and output files --- fex2bin.c | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/fex2bin.c b/fex2bin.c index 2287a03..89c36be 100644 --- a/fex2bin.c +++ b/fex2bin.c @@ -16,7 +16,42 @@ */ #include "fex2bin.h" -int main(int UNUSED(argc), char *UNUSED(argv[])) +#include +#include +#include + +/** + */ +int main(int argc, char *argv[]) { - return 0; + int ret = -1; + FILE *in = stdin, *out = stdout; + const char *fn[] = {"stdin", "stdout"}; + + if (argc>1) { + if (strcmp(argv[1],"-") == 0) + ; /* we are using stdin anyway */ + else if ((fn[0] = argv[1]) && + (in = fopen(fn[0], "r")) == NULL) { + errf("%s: %s\n", fn[0], strerror(errno)); + goto usage; + } + + if (argc>2) { + fn[1] = argv[2]; + + if ((out = fopen(fn[1], "w")) == NULL) { + errf("%s: %s\n", fn[1], strerror(errno)); + goto usage; + } + } + } + goto done; +usage: + errf("Usage: %s [ []\n", argv[0]); + +done: + if (in != stdin) fclose(in); + if (out != stdout) fclose(out); + return ret; }