diff options
1 files changed, 21 insertions, 3 deletions
| -rw-r--r-- | chwrite/chwrite.c | 24 |
diff --git a/chwrite/chwrite.c b/chwrite/chwrite.c index 6be8ec8..395cf91 100644 --- a/chwrite/chwrite.c +++ b/chwrite/chwrite.c @@ -4,6 +4,7 @@ #include <fcntl.h> #include <errno.h> #include <stdio.h> +#include <string.h> static void help_message(void) { @@ -25,14 +26,31 @@ main(int argc, char *argv[]) { help_message(); return 0; } + for (i = 1; i < argc; ++i) { + if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { + help_message(); + return 0; + } + } - operation = argv[1][0]; - - if (operation != '+' && operation != '-') { + if (!strcmp(argv[1], "+") || !strcmp(argv[1], "+w")) { + operation = '+'; + } + else if (!strcmp(argv[1], "-") || !strcmp(argv[1], "-w")) { + operation = '-'; + } + else { + printf("Invalid argument '%s'!\n", argv[1]); help_message(); return 1; } + if (argc == 2) { + printf("Not enough arguments!\n"); + help_message(); + return 2; + } + for (i = 2; i < argc; ++i) { f = open(argv[i], 0); if (f == -1) |
