Как разрешить неопционные аргументы в любом порядке для геотопа?

У меня есть программа на 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?

Ответы на вопрос(1)

Ваш ответ на вопрос