int verbose = 0;
int c;
- while ( (c = getopt(argc, argv, "?svb:")) != -1)
+ enum { OPT_HELP = 300 };
+ static const struct option options[] =
+ {
+ /* Name, args, flag, val */
+ { "help", no_argument, NULL, OPT_HELP },
+ { "verbose", no_argument, NULL, 'v' },
+ { "block-size", required_argument, NULL, 'b' },
+ { "quiet", required_argument, NULL, 'q' },
+ { NULL, 0, NULL, 0}
+ };
+
+ while ( (c = getopt_long(argc, argv, "svb:", options, NULL)) != -1)
switch (c)
{
- case '?':
+ case OPT_HELP:
usage();
- return EXIT_FAILURE;
+ return EXIT_SUCCESS;
case 'b':
block_nbits = CHAR_BIT * atosize(optarg);
if (!block_nbits)
}
break;
- case 's':
+ case 'q':
silent = 1;
break;
verbose++;
break;
+ case '?':
+ return EXIT_FAILURE;
+
default:
abort();
}