Я использую getopt для анализа входных данных для CLI, написанного на C ++.
У меня есть длинные и короткие опции, и мой элемент struct long_options [] выглядит так:
{"verbose", no_argument, NULL, "v"}
Одно наблюдение — в командной строке, даже если я прохожу
# mycommand --verb
это все еще принимает это и направляет к функции, которая обрабатывает подробное поведение.
Есть ли способ заставить getopt выполнять строгую проверку опций? Он не должен принимать —verb как —verbose, верно?
Согласно инструкции[1] [2] и источник[3] нет возможности отключить соответствующие сокращенные длинные параметры.
Вы можете принять это поведение (которое существует уже десятилетия и вряд ли удивит пользователей) или искать другую библиотеку синтаксического анализатора, которая позволяет отключать длинные сокращения параметров.
Других решений пока нет …