...
extern char *optarg, *suboptarg; char *options, *value;
while ((ch
= getopt(argc, argv, "ab:")) != -1) { switch(ch) {
case ’a’:
/* process ‘‘a’’ option */
break;
case ’b’:
options = optarg;
while (*options) {
switch(getsubopt(&options, tokens, &value)) {
case ONE:
/* process ‘‘one’’ sub option */
break;
case TWO:
/* process ‘‘two’’ sub option */
if (!value)
error("no value for two");
i = atoi(value);
break;
case -1:
if (suboptarg)
error("illegal sub option %s",
suboptarg);
else
error("missing sub option");
break;
}
break;
}