diff options
Diffstat (limited to 'dviware/quicspool/man/getopt.l')
-rw-r--r-- | dviware/quicspool/man/getopt.l | 145 |
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 |