From da7b4ead08baff86268e14b459322fd514a4acb8 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 10 May 2009 16:44:03 -0700 Subject: Croak with usage info on no arguments --- fadvise.c | 27 +++++++++++++++++++-------- mincore.c | 16 +++++++++++----- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/fadvise.c b/fadvise.c index 349ac42..0b58b3f 100644 --- a/fadvise.c +++ b/fadvise.c @@ -12,6 +12,20 @@ static struct fa_advice { { "dontneed" , POSIX_FADV_DONTNEED } }; +static int usage(const char * argv0) +{ + int i; + + fprintf(stderr, + "Usage: %s [-a advice] [-o offset] " + "[-l length] FILE...\n", argv0); + fprintf(stderr, "\nPossible values for advice:\n"); + for (i = 0; i < ARRAY_SIZE(advice_table); ++i) + fprintf(stderr, "\t%s\n", advice_table[i].name); + + return 1; +} + static void apply_fadvise(const char *path, off_t offset, off_t len, int advice) { int fd; @@ -54,7 +68,7 @@ int main(int argc, char * const argv[]) int opt; int argi = 1; - while ((opt = getopt(argc, argv, "o:l:a:")) != -1) { + while ((opt = getopt(argc, argv, "o:l:a:h")) != -1) { int i; char *err; @@ -86,16 +100,13 @@ int main(int argc, char * const argv[]) fprintf(stderr, "advice '%s' not understood\n", optarg); /* fall-through */ default: - fprintf(stderr, - "Usage: %s [-a advice] [-o offset] " - "[-l length] \n", argv[0]); - fprintf(stderr, "\nPossible values for advice:\n"); - for (i = 0; i < ARRAY_SIZE(advice_table); ++i) - fprintf(stderr, "\t%s\n", advice_table[i].name); - return 1; + return usage(argv[0]); } } + if (argi >= argc) + return usage(argv[0]); + for (; argi < argc; ++argi) apply_fadvise(argv[argi], offset, len, advice); return 0; diff --git a/mincore.c b/mincore.c index 41adf7b..b2de217 100644 --- a/mincore.c +++ b/mincore.c @@ -1,5 +1,11 @@ #include "compat-util.h" +static int usage(const char * argv0) +{ + fprintf(stderr, "Usage: %s [-o offset] [-l length] FILE...\n", argv0); + return 1; +} + static void mincore_stats(const char *path, off_t offset, off_t len) { char *map; @@ -70,7 +76,7 @@ int main(int argc, char * const argv[]) int argi = 1; int opt; - while ((opt = getopt(argc, argv, "o:l:")) != -1) { + while ((opt = getopt(argc, argv, "o:l:h")) != -1) { char *err; argi += 2; @@ -90,13 +96,13 @@ int main(int argc, char * const argv[]) } break; default: - fprintf(stderr, - "Usage: %s [-o offset] " - "[-l length] \n", argv[0]); - return 1; + return usage(argv[0]); } } + if (argi >= argc) + return usage(argv[0]); + for (; argi < argc; ++argi) mincore_stats(argv[argi], offset, len); return 0; -- cgit v1.2.3-24-ge0c7