This structure describes a single option, and and action associated with it, in case it matches.
More than one such match may occur, in which case the action for each match is executed.
There are three possible actions in case of a match:
i) An integer (int or unsigned) variable determined by 'offset' is set to 'value'
ii) The processing function is called, with 'value' as the key
iii) An integer (any) or string (char *) variable determined by 'offset' is set to the value of an option parameter
'offset' should normally be either set to
The 'offsetof()' macro is defined in the <stddef.h> header.
The template determines which options match, and also have an effect on the action. Normally the action is either i) or ii), but if a format is present in the template, then action iii) is performed.
The types of templates are:
1) "-x", "-foo", "--foo", "--foo-bar", etc. These match only themselves. Invalid values are "--" and anything beginning with "-o"
2) "foo", "foo-bar", etc. These match "-ofoo", "-ofoo-bar" or the relevant option in a comma separated option list
3) "bar=", "--foo=", etc. These are variations of 1) and 2) which have a parameter
4) "bar=%s", "--foo=%lu", etc. Same matching as above but perform action iii).
5) "-x ", etc. Matches either "-xparam" or "-x param" as two separate arguments
6) "-x %s", etc. Combination of 4) and 5)
If the format is "%s", memory is allocated for the string unlike with scanf().
|const char *||templ|