optarg long getopt_long example ejemplo c getopt

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.


Si dos puntos son seguidos por un carácter o cadena significa que esta opción debe requerir el argumento y si no hay dos puntos significa que no hay argumentos

para más detalles, haga man 3 getopt o visite el link o la página del manpage