¿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?