diff options
-rw-r--r-- | src/calculer.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/calculer.c b/src/calculer.c index 5eefb87..0e442de 100644 --- a/src/calculer.c +++ b/src/calculer.c @@ -71,8 +71,10 @@ measure_after(void *data, int correct) } #define print_opt_noarg(opt, desc) \ - fprintf(stream, " -"opt"\t"desc"\n") + fprintf(stream, " -"opt"\t\t"desc"\n") +#define print_opt_arg(opt, arg, desc) \ + fprintf(stream, " -"opt" "arg"\t"desc"\n"); void print_usage(FILE *stream) @@ -81,6 +83,7 @@ print_usage(FILE *stream) fprintf(stream, "OPTIONS\n"); print_opt_noarg("V", "Print version and exit."); print_opt_noarg("h", "Print help and exit."); + print_opt_arg("l", "LOGFILE", "Use LOGFILE as log file.\n"); } void @@ -100,9 +103,9 @@ print_version(void) int main(int argc, char *argv[]) { + char *logpath = "./calculer.log"; + srand(time(NULL)); - logfile = fopen("./calculer.log", "a"); - assert(logfile); time_t now = time(NULL); struct tm *tm = localtime(&now); @@ -110,7 +113,7 @@ main(int argc, char *argv[]) assert(bytes_written); int opt; - while ((opt = getopt(argc, argv, ":Vh")) != -1) + while ((opt = getopt(argc, argv, ":Vhl:")) != -1) { switch (opt) { @@ -120,6 +123,9 @@ main(int argc, char *argv[]) case 'h': print_help(); exit(0); + case 'l': + logpath = optarg; + break; case ':': fprintf(stderr, "calculer: option %d requires an argument\n", @@ -132,6 +138,9 @@ main(int argc, char *argv[]) } } + logfile = fopen(logpath, "a"); + assert(logfile); + while (1) { char prompt[32] = {0}; |