> > Um ... so how would control get there with optind too large? Sorry, I missed the simple explanation for that:
As option 'h' is missing an argument, getopt(_long) returns the character '?' which is switched on through variable c, and the program jumps to the '?' case handling.