Как разрешить неопционные аргументы в любом порядке для геотопа?
У меня есть программа на C, которая должна вызываться с несколькими опциями и 1 необязательным аргументом (т.е. без ассоциированной буквы опции), и использует getopt для разбора этих опций. Например, его можно вызвать с помощью:
Example1:myProgram -a "aParam" -b "bParam" "xParam"
Я использовал SLES10, и варианты работали в любом порядке. Например, необязательный аргумент "xParam» может прийти первым:
Example2:myProgram "xParam" -a "aParam" -b "bParam"
Однако при тестировании в SLES11 кажется, что getopt останавливает обработку, как только достигает неопционального параметра, поэтому приведенный выше пример 2 не работает.
Вы прочитали справочные страницы getopt и заметили, что это может быть актуально:
Если первый символ optstring равен '+' или установлена переменная окружения POSIXLY_CORRECT, тогда обработка опции останавливается, как только встречается необязательный аргумент.
Я не уверен, что SLES11 по умолчанию устанавливает POSIXLY_CORRECT. Каков наилучший способ получить старое поведение getopt SLES10 в SLES11?