Интерфейс командной строки. Как сделать так, чтобы getopt в C ++ строго проверял параметры?

Я использую getopt для анализа входных данных для CLI, написанного на C ++.
У меня есть длинные и короткие опции, и мой элемент struct long_options [] выглядит так:

{"verbose", no_argument, NULL, "v"}

Одно наблюдение — в командной строке, даже если я прохожу

# mycommand --verb

это все еще принимает это и направляет к функции, которая обрабатывает подробное поведение.
Есть ли способ заставить getopt выполнять строгую проверку опций? Он не должен принимать —verb как —verbose, верно?

5

Решение

Согласно инструкции[1] [2] и источник[3] нет возможности отключить соответствующие сокращенные длинные параметры.

Вы можете принять это поведение (которое существует уже десятилетия и вряд ли удивит пользователей) или искать другую библиотеку синтаксического анализатора, которая позволяет отключать длинные сокращения параметров.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]