diff --git a/cat.c b/cat.c index 014b173..81a1eb4 100644 --- a/cat.c +++ b/cat.c @@ -1,6 +1,7 @@ /* See LICENSE file for copyright and license details. */ #include #include +#include #include "util.h" static void cat(FILE *, const char *); @@ -8,15 +9,16 @@ static void cat(FILE *, const char *); int main(int argc, char *argv[]) { - int i; FILE *fp; - if(argc == 1) + if(getopt(argc, argv, "") != -1) + exit(EXIT_FAILURE); + if(optind == argc) cat(stdin, ""); - else for(i = 1; i < argc; i++) { - if(!(fp = fopen(argv[i], "r"))) - eprintf("fopen %s:", argv[i]); - cat(fp, argv[i]); + else for(; optind < argc; optind++) { + if(!(fp = fopen(argv[optind], "r"))) + eprintf("fopen %s:", argv[optind]); + cat(fp, argv[optind]); fclose(fp); } return EXIT_SUCCESS; diff --git a/grep.c b/grep.c index 5c3ef17..2645ef8 100644 --- a/grep.c +++ b/grep.c @@ -36,7 +36,7 @@ main(int argc, char *argv[]) vflag = true; break; default: - exit(EXIT_FAILURE); + exit(2); } if(optind == argc) { fprintf(stderr, "usage: %s [-cilnqv] pattern [files...]\n", argv[0]); diff --git a/sleep.c b/sleep.c index 02fe791..39fbae8 100644 --- a/sleep.c +++ b/sleep.c @@ -8,10 +8,12 @@ main(int argc, char *argv[]) { unsigned int seconds; - if(argc != 2) + if(getopt(argc, argv, "") != -1) + exit(EXIT_FAILURE); + if(optind != argc-1) eprintf("usage: %s seconds\n", argv[0]); - seconds = atoi(argv[1]); + seconds = atoi(argv[optind]); while((seconds = sleep(seconds)) > 0) ; return EXIT_SUCCESS;