optstring is a string containing the legitimate option characters. If
such a character is followed by a colon, the option requires an argu-
ment, so getopt places a pointer to the following text in the same
argv-element, or the text of the following argv-element, in optarg.
Two colons mean an option takes an optional arg; if there is text in
the current argv-element, it is returned in optarg, otherwise optarg is
set to zero. This is a GNU extension. If optstring contains W fol-
lowed by a semicolon, then -W foo is treated as the long option --foo.
(The -W option is reserved by POSIX.2 for implementation extensions.)
This behaviour is a GNU extension, not available with libraries before
GNU libc 2.