|
|
1.1 root 1: .TH GETOPT 3
2: .CT 2 data_man
3: .SH NAME
4: getopt \(mi get option letter from argv
5: .SH SYNOPSIS
6: .nf
7: .B int getopt (argc, argv, optstring)
8: .B int argc;
9: .B char **argv;
10: .B char *optstring;
11: .PP
12: .B extern char *optarg;
13: .B extern int optind;
14: .B extern int opterr;
15: .fi
16: .SH DESCRIPTION
17: .I Getopt
18: returns the next option letter in
19: .I argv
20: that matches a letter in
21: .IR optstring .
22: .I Optstring
23: is a string of recognized option letters;
24: if a letter is followed by a colon, the option
25: is expected to have an argument, which may or
26: may not be separated from it by white space.
27: .I Optarg
28: is set to point to the start of the option argument, if any.
29: .PP
30: .I Optind,
31: initially 1, holds the index in
32: .I argv
33: of the next argument to be processed.
34: When
35: .I opterr
36: is nonzero (the default state), errors cause
37: diagnostic messages.
38: .PP
39: Option letters appear in nonempty clusters preceded by
40: .BR - .
41: The special option
42: .L --
43: may be used to mark the end of the options.
44: .SH EXAMPLES
45: This fragment processes arguments
46: for a command that can take option
47: .B a
48: and option
49: .BR f ,
50: which requires an argument.
51: .PP
52: .EX
53: .ta \w'12345678'u +\w'12345678'u
54: main (argc, argv) char **argv;
55: {
56: int c, errflg = 0;
57: extern int optind;
58: extern char *optarg, *ifile;
59: while((c = getopt(argc, argv, "af:")) != -1)
60: switch (c){
61: case 'a': aflg=1; break;
62: case 'f': ifile = optarg; break;
63: case '?': errflg=1; break;
64: }
65: if(errflg){
66: fprintf(stderr, "usage: . . . ");
67: exit(2);
68: }
69: for( ; optind < argc; optind++){
70: if(access(argv[optind], 4)){
71: ...
72: }
73: }
74: ...
75: }
76: .EE
77: .SH SEE ALSO
78: .IR getflags (3)
79: .SH DIAGNOSTICS
80: When all options have been processed,
81: \-1 is returned;
82: .I optind
83: refers to the first non-option argument.
84: .br
85: When
86: .I getopt
87: encounters an option letter not included in
88: .I optstring
89: or finds an option argument missing, it prints a diagnostic on
90: .B stderr
91: under control of
92: .I opterr
93: and returns a question mark
94: .LR ? .
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.