25.3.7 Flags for argp_parse

The default behavior of argp_parse is designed to be convenient for the most common case of parsing program command line argument. To modify these defaults, the following flags may be or’d together in the flags argument to argp_parse:

ARGP_PARSE_ARGV0

Don’t ignore the first element of the argv argument to argp_parse. Unless ARGP_NO_ERRS is set, the first element of the argument vector is skipped for option parsing purposes, as it corresponds to the program name in a command line.

ARGP_NO_ERRS

Don’t print error messages for unknown options to stderr; unless this flag is set, ARGP_PARSE_ARGV0 is ignored, as argv[0] is used as the program name in the error messages. This flag implies ARGP_NO_EXIT. This is based on the assumption that silent exiting upon errors is bad behavior.

ARGP_NO_ARGS

Don’t parse any non-option args. Normally these are parsed by calling the parse functions with a key of ARGP_KEY_ARG, the actual argument being the value. This flag needn’t normally be set, as the default behavior is to stop parsing as soon as an argument fails to be parsed. See Argp Parser Functions.

ARGP_IN_ORDER

Parse options and arguments in the same order they occur on the command line. Normally they’re rearranged so that all options come first.

ARGP_NO_HELP

Don’t provide the standard long option ‘--help’, which ordinarily causes usage and option help information to be output to stdout and exit (0).

ARGP_NO_EXIT

Don’t exit on errors, although they may still result in error messages.

ARGP_LONG_ONLY

Use the GNU getopt ‘long-only’ rules for parsing arguments. This allows long-options to be recognized with only a single ‘-’ (i.e., ‘-help’). This results in a less useful interface, and its use is discouraged as it conflicts with the way most GNU programs work as well as the GNU coding standards.

ARGP_SILENT

Turns off any message-printing/exiting options, specifically ARGP_NO_EXIT, ARGP_NO_ERRS, and ARGP_NO_HELP.