getopt function gets the next option argument from the
argument list specified by the argv and argc arguments.
Normally these values come directly from the arguments received by
The options argument is a string that specifies the option
characters that are valid for this program. An option character in this
string can be followed by a colon (`:') to indicate that it takes a
required argument. If an option character is followed by two colons
(`::'), its argument is optional; this is a GNU extension.
getopt has three ways to deal with options that follow
non-options argv elements. The special argument `--' forces
in all cases the end of option scanning.
- The default is to permute the contents of argv while scanning it
so that eventually all the non-options are at the end. This allows
options to be given in any order, even with programs that were not
written to expect this.
- If the options argument string begins with a hyphen (`-'), this
is treated specially. It permits arguments that are not options to be
returned as if they were associated with option character `\1'.
- POSIX demands the following behavior: The first non-option stops option
processing. This mode is selected by either setting the environment
POSIXLY_CORRECT or beginning the options argument
string with a plus sign (`+').
getopt function returns the option character for the next
command line option. When no more option arguments are available, it
-1. There may still be more non-option arguments; you
must compare the external variable
optind against the argc
parameter to check this.
If the option has an argument,
getopt returns the argument by
storing it in the variable optarg. You don't ordinarily need to
optarg string, since it is a pointer into the original
argv array, not into a static area that might be overwritten.
getopt finds an option character in argv that was not
included in options, or a missing option argument, it returns
`?' and sets the external variable
optopt to the actual
option character. If the first character of options is a colon
getopt returns `:' instead of `?' to
indicate a missing option argument. In addition, if the external
opterr is nonzero (which is the default),
prints an error message.