[0b990d] | 1 | .\" @(#)GetLongOpt.3 2.0 12/01/1993
|
---|
| 2 | .TH GETLONGOPT 3 "12 January 1993" "" "C++ LIBRARY CLASSES"
|
---|
| 3 | .UC 4
|
---|
| 4 | .SH NAME
|
---|
| 5 | GetLongOpt - C++ class for parsing command line and strings for options
|
---|
| 6 | .SH SYNOPSIS
|
---|
| 7 | .nf
|
---|
| 8 | .ft B
|
---|
| 9 | .ss 18
|
---|
| 10 | #include <GetLongOpt.h>
|
---|
| 11 |
|
---|
| 12 | GetLongOpt::GetLongOpt(const char optmark = '-');
|
---|
| 13 | int GetLongOpt::parse(int argc, char * const *argv);
|
---|
| 14 | int GetLongOpt::parse(char * const str, char * const p);
|
---|
| 15 | int GetLongOpt::enroll(const char * const opt, const OptType t,
|
---|
| 16 | const char * const desc, const char * const val);
|
---|
| 17 | const char * GetLongOpt::retrieve(const char * const opt) const;
|
---|
| 18 | void GetLongOpt::usage(ostream &outfile = cout) const;
|
---|
| 19 | void GetLongOpt::usage(const char *str);
|
---|
| 20 | .ft
|
---|
| 21 | .fi
|
---|
| 22 | .ss
|
---|
| 23 |
|
---|
| 24 | .SH DESCRIPTION
|
---|
| 25 | GetLongOpt is a C++ class for getting options from the command line
|
---|
| 26 | and from strings. GetLongOpt supports long options. These options
|
---|
| 27 | may be flags or require optional or mandatory values.
|
---|
| 28 | If an option requires a value, then the value should be separated
|
---|
| 29 | from the option either by whitespace or by a "=". Long options
|
---|
| 30 | can be abbreviated. GetLongOpt can also be used to parse options given
|
---|
| 31 | through environments.
|
---|
| 32 |
|
---|
| 33 | The constructor for GetLongOpt takes an optional argument: the option
|
---|
| 34 | marker. If unspecified, this defaults to '-', the standard (?)
|
---|
| 35 | Unix option marker. For example, a DOS addict may want to
|
---|
| 36 | specify '/' for the option marker!
|
---|
| 37 |
|
---|
| 38 | .I GetLongOpt::enroll
|
---|
| 39 | adds option specifications to its internal
|
---|
| 40 | database. The first argument is the option sting. The second
|
---|
| 41 | is an enum saying if the option is a flag (GetLongOpt::NoValue),
|
---|
| 42 | if it requires a mandatory value (GetLongOpt::MandatoryValue) or
|
---|
| 43 | if it takes an optional value (GetLongOpt::OptionalValue).
|
---|
| 44 | The third argument is a string giving a brief description of
|
---|
| 45 | the option. This description will be used by
|
---|
| 46 | .I GetLongOpt::usage.
|
---|
| 47 | GetLongOpt, for usage-printing, uses $val to represent values
|
---|
| 48 | needed by the options. <$val> is a mandatory value and [$val]
|
---|
| 49 | is an optional value. The final argument to
|
---|
| 50 | .I GetLongOpt::enroll
|
---|
| 51 | is the default string to be returned if the option is not
|
---|
| 52 | specified. For flags (options with NoValue), use "" (empty
|
---|
| 53 | string, or in fact any arbitrary string) for specifying TRUE
|
---|
| 54 | and 0 (null pointer) to specify FALSE.
|
---|
| 55 |
|
---|
| 56 | .I GetLongOpt::usage
|
---|
| 57 | is overloaded. If passed a string
|
---|
| 58 | .I s,
|
---|
| 59 | it sets the
|
---|
| 60 | internal usage string to
|
---|
| 61 | .I s.
|
---|
| 62 | Otherwise it simply prints the
|
---|
| 63 | command usage. The options and their
|
---|
| 64 | descriptions (as specified during enroll) are printed in the
|
---|
| 65 | order they are enrolled.
|
---|
| 66 |
|
---|
| 67 | .I GetLongOpt::parse
|
---|
| 68 | is also overloaded. It can either parse a string of
|
---|
| 69 | options (typically given from the environment), or it can parse
|
---|
| 70 | the command line args (argc, argv). In either case a return
|
---|
| 71 | value < 1 represents a parse error. Appropriate error messages
|
---|
| 72 | are printed when errors are seen. GetLongOpt::parse, in its first
|
---|
| 73 | form, takes two strings: the first one is the string to be
|
---|
| 74 | parsed and the second one is a string to be prefixed to the
|
---|
| 75 | parse errors. In its second form,
|
---|
| 76 | .I GetLongOpt::parse
|
---|
| 77 | takes in argc and argv and returns the
|
---|
| 78 | the optind (see getopt(3)) if parsing is successful.
|
---|
| 79 | Successful parsing, in either form of
|
---|
| 80 | .I GetLongOpt::parse,
|
---|
| 81 | updates the values of the options within the internal database.
|
---|
| 82 |
|
---|
| 83 | The values of the options that are enrolled in the database
|
---|
| 84 | can be retrieved using
|
---|
| 85 | .I GetLongOpt::retrieve.
|
---|
| 86 | This returns a string
|
---|
| 87 | and this string should be converted to whatever type you want.
|
---|
| 88 | See atoi(3), atof(3), atol(3) etc. I suppose you would do a
|
---|
| 89 | .I GetLongOpt::parse
|
---|
| 90 | before
|
---|
| 91 | retrieving. Otherwise all you would get are the default values
|
---|
| 92 | you gave while enrolling!
|
---|
| 93 | Ambiguities while retrieving (may happen when options are
|
---|
| 94 | abbreviated) are resolved by taking the matching option that
|
---|
| 95 | was enrolled last.
|
---|
| 96 |
|
---|
| 97 | If you try to retrieve something you did not enroll, you will
|
---|
| 98 | get a warning message. This means that you probably had made
|
---|
| 99 | a typo somewhere while enrolling or retrieving.
|
---|
| 100 |
|
---|
| 101 | .SH BUGS
|
---|
| 102 | They should be there well-hidden. If you spot one report it.
|
---|
| 103 |
|
---|
| 104 | .SH "SEE ALSO"
|
---|
| 105 | getopt(3),
|
---|
| 106 | getopts(1),
|
---|
| 107 | atoi(3), atof(3), atol(3).
|
---|
| 108 |
|
---|
| 109 | .SH AUTHOR
|
---|
| 110 | .nf
|
---|
| 111 | S Manoharan
|
---|
| 112 | Advanced Computer Research Institute
|
---|
| 113 | 1 Boulevard Marius Vivier-Merle
|
---|
| 114 | 69443 Lyon Cedex 03 France
|
---|
| 115 |
|
---|
| 116 | mano@acri.fr
|
---|
| 117 | .fi
|
---|
| 118 |
|
---|
| 119 | .\" end of man page
|
---|