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

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

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