Если вы хотите сделать что-то особенное с дублирующимися опциями, вы можете управлять состоянием в коде обработки опций.
Что-то вроде -v|--verbose
может быть повторено для дополнительной детализации, а код обработки vebosity равен
// initialize
int verbose_level=0
// in the getopt case for -v
verbose_level++;
(для опций, которые могут повторяться с аргументами, которые следует использовать all , загрузите список или что-то подобное).
Если вы не хотите, чтобы повторы делали что-то особенное, просто устанавливайте значение каждый раз
// in the case
verbose_level = 1;
и если вы хотите обнаружить повторы
// in the case
if (verbose_level) {
// handle this case as an error...
}