.\" SUCH DAMAGE.
.\"
.\" @(#)getopt.3 8.5 (Berkeley) 4/27/95
-.\" $FreeBSD: src/lib/libc/stdlib/getopt_long.3,v 1.11 2004/03/06 14:47:49 ache Exp $
+.\" $FreeBSD$
.\"
-.Dd April 1, 2000
+.Dd December 25, 2011
.Dt GETOPT_LONG 3
.Os
.Sh NAME
.Pp
.Bl -tag -width ".Dv optional_argument" -offset indent -compact
.It Dv no_argument
-no argument to the option is expect
+no argument to the option is expected
.It Dv required_argument
an argument to the option is required
-.It Li optional_argument
-an argument to the option may be presented.
+.It Dv optional_argument
+an argument to the option may be presented
.El
.Pp
If
If the
.Fa flag
field in
-.Li struct option
+.Vt "struct option"
is
.Dv NULL ,
.Fn getopt_long
.Ql \&?
if the user specified an unknown or ambiguous option, and
\-1 when the argument list has been exhausted.
+.Sh ENVIRONMENT
+.Bl -tag -width ".Ev POSIXLY_CORRECT"
+.It Ev POSIXLY_CORRECT
+If set, option processing stops when the first non-option is found and
+a leading
+.Ql -
+or
+.Ql +
+in the
+.Fa optstring
+is ignored.
+.El
.Sh EXAMPLES
.Bd -literal -compact
int bflag, ch, fd;
};
bflag = 0;
-while ((ch = getopt_long(argc, argv, "bf:", longopts, NULL)) != -1)
+while ((ch = getopt_long(argc, argv, "bf:", longopts, NULL)) != -1) {
switch (ch) {
case 'b':
bflag = 1;
break;
default:
usage();
+ }
}
argc -= optind;
argv += optind;
to current positions) are the same, though.
(We do fewer variable swaps.)
.El
-.Sh ENVIRONMENT
-.Bl -tag -width POSIXLY_CORRECT
-.It Ev POSIXLY_CORRECT
-If set, option processing stops when the first non-option is found and
-a leading
-.Ql -
-or
-.Ql +
-in the
-.Ar optstring
-is ignored.
-.El
.Sh SEE ALSO
.Xr getopt 3
.Sh HISTORY
.Fn getopt_long
and
.Fn getopt_long_only
-functions first appeared in
+functions first appeared in the
.Tn GNU
-libiberty.
+libiberty library.
The first
.Bx
implementation of
.Fx 5.2 .
.Sh BUGS
The
-.Ar argv
+.Fa argv
argument is not really
-.Dv const
+.Vt const
as its elements may be permuted (unless
.Ev POSIXLY_CORRECT
is set).