c - example - getopt_long
C, ¿Cómo especificar un optstring en la función getopt? (3)
No estoy seguro de cómo utilizar correctamente la optstring
en la función getopt
en C.
¿Cómo se debe formatear esa cadena? Vi ejemplos en los que las letras están una al lado de la otra, a veces separadas por un punto y coma, a veces por dos puntos y coma.
Qué significa eso?
Es solo una cadena, y cada carácter de esta cadena representa una opción. Si esta opción requiere un argumento, debe seguir el carácter de la opción por :
Por ejemplo, "cdf:g"
acepta las opciones c
; d
; f
; g
, f
requiere un argumento adicional. Una opción en la línea de comando tiene el aspecto de -option
, por lo que puede usar las opciones -c
, -d
, -f argument
y -g
.
La página de getopt(3)
deja bastante claro:
- la cadena se usa para especificar las opciones legales que pueden aparecer en la línea de comandos,
- si a la opción le sigue un
:
entonces esa opción tiene un parámetro requerido, sin especificar que causará un error en la función, - Si a la opción le sigue un
::
, esa opción tiene un parámetro opcional.
Las opciones son identificadores de una letra. Por ejemplo, especificar una cadena como aB:cD::
como la optstring
significa que su programa toma las opciones a
, B
con un parámetro requerido, c
y D
con un parámetro opcional.