Llame al uso de la función getopt

Llame al uso de la función getopt
La mayoría de nosotros sabemos cómo podemos usar argumentos en nuestro programa, pero si comenzamos a usar muchos argumentos e intentamos mantener el orden y el número correctos de argumentos, hará un rompecabezas para el usuario. Para evitar tal obstáculo, utilizaremos diferentes "opciones". Por ejemplo, "ls -l" aquí "-l" es una opción. Podemos usar múltiples argumentos y usarlos como opciones en múltiples pedidos. También hemos visto esto con nuestro compilador GCC en este artículo. Además, podemos usar muchas opciones y podemos utilizarlas de acuerdo con nuestras necesidades.

Sintaxis:

Ambos 'argc ' y 'argv ' son los parámetros para la declaración de recuento aceptado por la función main (). 'optstring'es el argumento de una cadena que debe reconocer los caracteres de las opciones. Cualquier personaje rastreado por un colon ':' se considera un argumento. 'Optind' es la variable inicializada que se considera un índice para el siguiente elemento en el que está en línea a continuación para procesar.

Propósito de usar el Getopt en C:

La función getopt () está integrada en C que se usa para analizar los argumentos de la línea de comandos.

Valor de retorno en la función getopt ()

  1. Getopt () devolverá '-1' si no quedan más opciones para procesar.
  2. Getopt () regresará '?'Si una opción que se está procesando no es reconocible.
  3. Getopt () devuelve ":" en lugar de '?'Si el usuario no ingresa ningún valor para el argumento.

Si Getopt () se encuentra con un personaje de opción que no está en 'OptString', devolverá el ('?') Carácter como salida. Si falta un argumento como opción, debe devolver un colon (':') como salida. GetOpt () establecerá la variable 'OPTOPT' en el carácter seleccionado que activó el error en cualquier caso. GetOpt () correspondientemente imprimirá un mensaje indicativo en Stderr en la sintaxis definida para la utilidad 'getopts' si la variable 'opterr' no está configurada en 0 y el carácter inicial de 'optstring' no es un colon.

La función getopt () no necesita ser reentrante. La seguridad del hilo no es obligatoria para una función que no debe ser reentrante.

Ejemplo de getopt () en C:

Tomemos un programa simple que acepte a los usuarios como -u y -g para el grupo. En primer lugar, debe incluir el archivo de encabezado para la funcionalidad de getopt ().

#incluir
#incluir


Establezcamos la función principal donde tenemos 'argc' como entero y matriz de personajes como '** argv'. Ahora aquí, configuraremos algunas variables y estableceremos un nombre de entero opción_index = 0; Porque cada uno de los argumentos que vamos a proporcionar tendrá un número de índice para que luego podamos iterarlo a través de todos los argumentos. Estamos configurando o iniciando a 0 para detener la advertencia porque podríamos estar utilizando una variable no inicializada.

# Char *use_name = null;

Como no tenemos un tipo de datos de cadena en C, configuramos una matriz de caracteres para '-u' para tomar el nombre de usuario como entrada e iniciarlo con un valor nulo.

Ahora entraremos en un bucle de tiempo, y nos permitirá leer todos los argumentos si se han establecido alguna opción. Al igual que con las condiciones, necesitamos que nuestros paréntesis lo encerren con un valor verdadero que en nuestro caso es "opcion_index = getopt (argc, argv," gu: ")". Usaremos getopt () para ver nuestro recuento de argumentos como 'argc' y leeremos de nuestra matriz 'argv' para establecer las opciones. Del mismo modo, aquí hay una opción "Gu:" y hemos puesto un colon después de la bandera "U". El ':' después del valor del indicador indica que adquiere un argumento. No importa en qué orden ponga las opciones, pero sí importa que coloque un colon después de las opciones.

Ahora tendremos una instrucción Switch en nuestro bucle While, y examinaremos el valor almacenado en el índice de la variable "opción_index". Estamos examinando cada artículo para cada caso.

Primero estableceremos el caso en el que establezcamos "user_name = Optarg". Las opciones se pueden usar para leer el usuario que agregamos como una entrada al ingresar 'U'. También debemos indicar que hemos terminado con este caso, y lo hacemos en el lenguaje C usando 'romper' después de cada caso al final.

Del mismo modo, usamos el segundo caso en el que si el usuario ingresa 'G', se indicará que ha seleccionado el grupo, y también nos separamos de esta declaración.

Ahora en el último caso, lo estamos utilizando para cualquier otra opción, que en nuestro caso puede ser cualquier error. Podemos elegir esto con 'predeterminado: y podemos pasar y especificar si la opción no válida se identifica o ingresa. Mostraremos declaraciones de impresión con "opción incorrecta".

También vamos a hacer un poco de diversidad. Esperamos que no hayas visto antes, ese es el valor de retorno. Si ponemos el valor de retorno en 1, dejaremos la función principal. Nuestro programa informará un error, lo que significa que hemos ejecutado el programa incorrectamente, por lo que no queremos devolver 0, por lo que dejamos el programa en su punto.

Ahora ya hemos cerrado todos los bloques y nos aseguramos de que generalmente hayamos vuelto a los soportes principales. El programa normalmente devuelve 0 valor a la función principal. Ahora hemos controlado con éxito la operación de falla por nuestro programa.

Veamos si nuestro programa funciona; Después de escribir el siguiente código, nos gustaría que coloque este comando en la línea de comando. Usamos GCC y fuimos directamente al código fuente 'option_program.c 'y luego usado "-o" para opciones. Después de esto, será un argumento, y aquí 'simple' es una salida.

Después de ejecutar nuestro 'GCC Simple_option.c -o simple -wall ' Comando con éxito, ahora pasamos y ejecutamos con una opción incorrecta que es '-h'. Usar "-h" como opción nos dará un error porque hemos enviado una opción incorrecta. También podemos usar ambos argumentos juntos, obteniendo el resultado en consecuencia.

Aquí podemos ver si queremos saber cómo se ejecutó nuestro último programa. Si escribe "Echo $?", Y si devuelve 0, significa que el último programa se ejecutó con éxito, y si devuelve 1 como puede ver en la imagen anterior, lo que significa que la última ejecución del programa falló.

Conclusión:

Este artículo tenía como objetivo brindarle una comprensión mejor y más clara de la función getopt () para que pueda mejorar la legibilidad de su código y mejorar la reutilización del código. Hemos discutido un ejemplo simple con sintaxis. El artículo lo ayudará a obtener fácilmente un conocimiento muy sólido y una comprensión de cómo usar getopt () en función. Se han discutido diferentes argumentos como parámetros para hacer un mejor uso de la función.