man gengetopt (Commandes) - generate a C function which parses command line arguments

NAME

gengetopt - generate a C function which parses command line arguments

SYNOPSIS

gengetopt [OPTIONS...] [< file]

DESCRIPTION

gengetopt reads a description file for command line arguments and generates a C function which uses the GNU getopt_long(3) library function to parse the command line arguments.

gengetopt supports: long and short options (per the GNU Coding Standards), 10 types of parameters (including flag, int, double, string, and function call), and a usage message.

gengetopt itself is under the GPL. The code it generates is not under any license. See LICENSE.

THIS MAN PAGE IS NOT COMPLETE.

Texinfo documentation will be released soon, but meanwhile please refer to README file or to the html documentation that you can find in /usr/share/doc/gengetopt.

OPTIONS

gengetopt accepts some options.

   -h         --help                Print help and exit
   -V         --version             Print version and exit
   -iSTRING   --input=STRING        input file (default std input)
   -fSTRING   --func-name=STRING    name of generated function (default='cmdline_parser')
   -FSTRING   --file-name=STRING    name of generated file (default='cmdline')
   -l         --long-help           long usage line in help
   -u         --unamed-opts         accept filenames
              --no-handle-help      do not handle --help|-h automatically
              --no-handle-version   do not handle --version|-V automatically
              --no-handle-error     do not exit on errors
              --conf-parser         generate a config file parser

INPUT

The description file consists of lines with the following format:

     package packname
     version version
     purpose purpose
     option long short desc argtype (default="default val") required multiple
     option long short desc flag    onoff
     option long short desc no
     ... # ...
`#' anywhere in a line starts a comment which continues to the end of the line. The data items are as follows:
package
Double quoted string. This has the precedence over PACKAGE generated by autoconf.
version
Double quoted string. This has the precedence over VERSION generated by autoconf.
purpose
Double quoted string with also newlines.
long
The long option, a double quoted string with upper and lower case chars, digits, `-' and `.'. No spaces allowed. The name of the variables generated to store arguments are long options converted to be legal C variable names. This means, `.' and `-' are both replaced by `_'. `_arg' is appended, or `_flag' for a flag.
short
The short option, a single upper or lower case char, or a digit. If a '-' is specified, then no short option is considered for the long option (thus long options with no associated short options are allowed).
desc
Double quoted string.
argtype
string, int, short, long, float, double, longdouble or longlong.
default
(Optional) Double quoted string. Specify the default value for this option.
required
yes or no.
multiple
If this flag is specified then this option can be specified more than once at command line; all the values for this option are stored in an array.
onoff
on or off. This is the state of the flag when the program starts. If user specifies the option, the flag toggles.

The third type of option is used to call an arbitrary function. It must not be required. (Otherwise, why is it an option if it doesn't take a parameter?)

Options --help and --version are generated automatically.

EXAMPLE

Here's an example of a description file:

  # file sample1.ggo
  option  "str-opt"         s "A string option"      string     no
  option  "my-opt"          m "Another integer option"      int     no
  option  "int-opt"         i "A int option"         int        yes
  option  "flag-opt"        - "A flag option"        flag       off
  option  "funct-opt"       F "A function option"    no 
  option  "long-opt"        - "A long option"        long       no
  option  "def-opt"         - "A string option with default" string default="Hello" no  

SEE ALSO

"Advanced features" section in the HTML documentation in /usr/share/doc/gengetopt.

Examples in /usr/share/doc/gengetopt/examples.

VERSION INFORMATION

This man page (partially) documents gengetopt, version 2.10. TexInfo documentation will be released soon.

AUTHOR

This man page was written by James R. Van Zandt <jrv@vanzandt.mv.com>, for the Debian GNU/Linux system (but may be used by others). It was modified by Lorenzo Bettini <bettini@gnu.org> the current maintainer of GNU gengetopt.