about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-05-10 16:44:03 -0700
committerEric Wong <normalperson@yhbt.net>2009-05-10 16:47:12 -0700
commitda7b4ead08baff86268e14b459322fd514a4acb8 (patch)
tree29004ff2ad825290464d323836fdf49d01f2d5d1
parenta137167c965e8e3e9bacf4fad561d504cad7b967 (diff)
downloadpcu-da7b4ead08baff86268e14b459322fd514a4acb8.tar.gz
Croak with usage info on no arguments
-rw-r--r--fadvise.c27
-rw-r--r--mincore.c16
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] <files>\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] <files>\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;