|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T g
Length: 2662 (0xa66)
Types: TextFile
Names: »getopt.l«
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
└─⟦this⟧ »./DVIware/laser-setters/quicspool/man/getopt.l«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦af5ba6c8e⟧ »unix3.0/DVIWARE.tar.Z«
└─⟦ca79c7339⟧
└─⟦this⟧ »DVIware/laser-setters/quicspool/man/getopt.l«
.\" $Header: getopt.l,v 1.1 88/01/15 12:58:20 simpson Rel $
.\" $Log: getopt.l,v $
.\" Revision 1.1 88/01/15 12:58:20 simpson
.\" initial release
.\"
.\" Revision 0.1 87/12/11 17:56:51 simpson
.\" beta test
.\"
.TH GETOPT 3
.SH NAME
getopt \- get option letter from argument vector
.SH SYNOPSIS
.B int getopt (argc, argv, optstring)
.br
.B int argc;
.br
.B char \(**\(**argv;
.br
.B char \(**optstring;
.PP
.B extern char \(**optarg;
.br
.B extern int optind;
.PP
cc ... -ltrw
.SH DESCRIPTION
.I Getopt\^
returns the next option letter in
.I argv\^
that matches
a letter in
.IR optstring .
.I Optstring\^
is a string of recognized option letters;
if a letter is followed by a colon, the option
is expected to have an argument that may or
may not be separated from it by white space.
.I Optarg\^
is set to point to the start of the option argument
on return from
.IR getopt .
.PP
.I Getopt\^
places in
.I optind\^
the
.I argv\^
index of the next argument to be processed.
Because
.I optind\^
is external, it is normally initialized to zero
automatically before the first call to
.IR getopt .
.PP
When all options have been processed
(i.e., up to the first non-option argument),
.I getopt\^
returns
.SM
.BR EOF .
The special option
.B \-\-
may be used to delimit the end of the options;
.SM
.B EOF
will be returned, and
.B \-\-
will be skipped.
.SH DIAGNOSTICS
.I Getopt\^
prints an error message on
.I stderr\^
and returns a
question mark
.RB ( ? )
when it encounters an option letter not included in
.IR optstring .
.SH WARNING
The above routine uses \fB<stdio.h>\fP, which causes
it to increase the size of programs,
not otherwise using standard I/O, more
than might be expected.
.SH EXAMPLE
The following code fragment shows how one might process the arguments
for a command that can take the mutually exclusive options
.B a
and
.BR b ,
and the options
.B f
and
.BR o ,
both of which require arguments:
.PP
.RS
.nf
.ss 18
main (argc, argv)
int argc;
char \(**\(**argv;
{
int c;
extern int optind;
extern char \(**optarg;
\&\f3.\fP
\&\f3.\fP
\&\f3.\fP
while ((c = getopt (argc, argv, "abf:o:")) != \s-1EOF\s+1)
switch (c) {
case \(fma\(fm:
if (bflg)
errflg++;
else
aflg++;
break;
case \(fmb\(fm:
if (aflg)
errflg++;
else
bproc( );
break;
case \(fmf\(fm:
ifile = optarg;
break;
case \(fmo\(fm:
ofile = optarg;
bufsiza = 512;
break;
case \(fm?\(fm:
errflg++;
}
if (errflg) {
fprintf (stderr, "usage: . . . ");
exit (2);
}
for ( ; optind < argc; optind++) {
if (access (argv[optind], 4)) {
\&\f3.\fP
\&\f3.\fP
\&\f3.\fP
}
.ss 12
.fi
.RE
.\" @(#)getopt.3c 5.2 of 5/18/82