¿Cómo permitir que los argumentos no opcionales en cualquier orden para obtener optar?

Tengo un programa en C que se espera que sea llamado con varias opciones y 1 argumento sin opción (es decir, sin una letra de opción asociada), y usa getopt para analizar estas opciones. Por ejemplo, se podría llamar con:

Ejemplo 1:myProgram -a "aParam" -b "bParam" "xParam"

He estado usando SLES10, y las opciones funcionaron en cualquier orden. Por ejemplo, el argumento de no opción, "xParam" podría aparecer primero:

Ejemplo 2:myProgram "xParam" -a "aParam" -b "bParam"

Sin embargo, al probar en SLES11, parece que getopt detiene el procesamiento tan pronto como llega a un parámetro que no es de opción, por lo que el ejemplo 2 anterior no funciona.

He leído las páginas de manual de getopt y he visto que esto puede ser relevante:

Si el primer carácter de optstring es '+' o se establece la variable de entorno POSIXLY_CORRECT, el procesamiento de opciones se detiene tan pronto como se encuentre un argumento de no opción.

No estoy seguro de si SLES11 establece POSIXLY_CORRECT de forma predeterminada. ¿Cuál es la mejor manera de obtener el antiguo comportamiento de SLES10 getopt en SLES11?

Respuestas a la pregunta(1)

Su respuesta a la pregunta