| This structure has the following fields, which may be modified as noted: 
const struct argp *const root_argpThe top level argp parser being parsed.  Note that this is often
not the same struct argppassed intoargp_parseby
the invoking program.  See Argp.  It is an internal argp parser that
contains options implemented byargp_parseitself, such as--help.
int argcchar **argvThe argument vector being parsed.  This may be modified.
int nextThe index in argvof the next argument to be parsed.  This may be
modified.One way to consume all remaining arguments in the input is to set
state->next = state->argc, perhaps after recording
the value of thenextfield to find the consumed arguments.  The
current option can be re-parsed immediately by decrementing this field,
then modifyingstate->argv[state->next]to reflect
the option that should be reexamined.
unsigned flagsThe flags supplied to argp_parse.  These may be modified, although
some flags may only take effect whenargp_parseis first
invoked.  See Argp Flags.
unsigned arg_numWhile calling a parsing function with the key argument
ARGP_KEY_ARG, this represents the number of the current arg,
starting at 0.  It is incremented after eachARGP_KEY_ARGcall
returns.  At all other times, this is the number ofARGP_KEY_ARGarguments that have been processed.
int quotedIf non-zero, the index in argvof the first argument following a
special--argument.  This prevents anything that follows from
being interpreted as an option.  It is only set after argument parsing
has proceeded past this point.
void *inputAn arbitrary pointer passed in from the caller of argp_parse, in
the input argument.
void **child_inputsThese are values that will be passed to child parsers.  This vector will
be the same length as the number of children in the current parser.  Each
child parser will be given the value of
state->child_inputs[i]as itsstate->inputfield, where i is the index of the child
in the this parser'schildrenfield.  See Argp Children.
void *hookFor the parser function's use.  Initialized to 0, but otherwise ignored
by argp.
char *nameThe name used when printing messages.  This is initialized to
argv[0], orprogram_invocation_nameifargv[0]is
unavailable.
FILE *err_streamFILE *out_streamThe stdio streams used when argp prints.  Error messages are printed to
err_stream, all other output, such as--helpoutput) toout_stream.  These are initialized tostderrandstdoutrespectively.  See Standard Streams.
void *pstatePrivate, for use by the argp implementation. 
 |