#include <stdio.h> #include <stdlib.h> #include "arg.h" char *argv0; static void usage(int status) { fprintf(stderr, "Usage: %s [options]\n" " -h: show this help text\n" " -n number: some numeric argument\n" " -s string: some string argument\n" " -v: be verbose\n", argv0); exit(status); } int main(int argc, char **argv) { int vflag = 0; int number = 0; char *str = "default-value"; ARGBEGIN { case 'h': usage(0); break; case 'n': number = atoi(EARGF(usage(2))); break; case 's': str = EARGF(usage(2)); break; case 'v': vflag++; break; default: usage(2); } ARGEND printf("verbosity level is %d\n", vflag); printf("numeric argument is %d\n", number); printf("string argument is %s\n", str); puts("positional arguments:"); for (char **p = argv; *p; p++) { puts(*p); } }