HP-UX Reference (11i v2 07/12) - 3 Library Functions A-M (vol 6)

g
getopt(3C) getopt(3C)
EXAMPLES
The following code fragment shows to process arguments for a command that can take the mutually
exclusive options a and b, and the options
f and o, both of which require arguments:
#include <stdio.h>
#include <unistd.h>
main (int argc, char *argv[])
{
int c;
int bflg, aflg, errflg;
extern char *optarg;
extern int optind, optopt;
.
.
.
while ((c = getopt(argc, argv, ":abf:o:")) != -1)
switch (c) {
case ’a’:
if (bflg)
errflg++;
else
aflg++;
break;
case ’b’:
if (aflg)
errflg++;
else {
bflg++;
bproc( );
}
break;
case ’f’:
ifile = optarg;
break;
case ’o’:
ofile = optarg;
break;
case ’:’: /* -f or -o without arguments */
fprintf(stderr, "Option -%c requires an argument\n",
optopt);
errflg++;
break;
case ’?’:
fprintf(stderr, "Unrecognized option: - %c\n",
optopt);
errflg++;
}
if (errflg) {
fprintf(stderr, "usage: ...");
exit (2);
}
for ( ; optind < argc; optind++) {
if (access(argv[optind], 4)) {
.
.
.
}
WARNINGS
Options can be any ASCII characters except colon (:), question mark (?), or null (\0).
516 Hewlett-Packard Company 2 HP-UX 11i Version 2: December 2007 Update