Как разрешить неопционные аргументы в любом порядке для геотопа?
У меня есть программа на 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?