Argtable is an ANSI C library for parsing GNU style command line options with a
minimum of fuss. It enables a program's command line syntax to be defined in
the source code as an array of argtable structs. The command line is then
parsed according to that specification and the resulting values are returned in
those same structs where they are accessible to the main program. Both tagged
(-v, --verbose, --foo=bar) and untagged arguments are supported, as are
multiple instances of each argument. Syntax error handling is automatic and the
library also provides the means for generating a textual description of the
command line syntax.
The argtable parsing, validation, and error reporting routines may be replaced
by user-defined callbacks if desired and new argtable data types may be created
to parse user-defined argument types. The parsing itself is done using GNU
getopt so the parser is 100% GNU compatible. Care has also been taken to make
the internal command line buffer handling secure against buffer overun attacks,
as might be attempted with maliciously long command lines.