summaryrefslogtreecommitdiff
path: root/dviware/quicspool/man/getopt.l
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/quicspool/man/getopt.l')
-rw-r--r--dviware/quicspool/man/getopt.l145
1 files changed, 145 insertions, 0 deletions
diff --git a/dviware/quicspool/man/getopt.l b/dviware/quicspool/man/getopt.l
new file mode 100644
index 0000000000..c1a50de8b0
--- /dev/null
+++ b/dviware/quicspool/man/getopt.l
@@ -0,0 +1,145 @@
+.\" $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