Argumentos de línea de comando en C explicados

Publicado: 2022-04-29

Los argumentos de la línea de comandos se utilizan cuando un programa debe controlarse desde el exterior en lugar de hacerlo internamente. Es una interfaz de texto para desarrolladores donde los argumentos se pasan directamente al método principal.

Los valores que se pasan dentro de una función cuando se llama se denominan argumentos. En otras palabras, un argumento es un parámetro que se pasa a un método determinado cuando se invoca.

Sintaxis :

int principal() { /* … */ }

El código anterior recibe el comando y lo pasa al sistema operativo de la computadora para que se ejecute. Estos comandos siempre se invocan cuando se ejecuta un código.

Los argumentos de línea de comandos de CC y C++ son bastante fáciles de implementar debido a su simplicidad y sintaxis fácilmente descifrables.

Para pasar argumentos de línea de comandos, la función principal debe definirse mediante dos argumentos:

  1. El número total de argumentos de la línea de comandos
  2. La lista completa de argumentos de la línea de comandos

Sintaxis :

int main(int argc, char *argv[]) { /* … */ }

  1. argc (ARGument Count) se define como un tipo de datos entero que almacena el número total de argumentos de la línea de comandos. Comprensiblemente, esto siempre debe ser un valor no negativo.
  2. argv (ARGument Vector) denota una matriz de punteros del tipo de datos de caracteres utilizados para almacenar la lista completa de argumentos de la línea de comandos.

Con la ayuda de la línea de comandos, los desarrolladores pueden acceder a una variedad de archivos y carpetas en sus computadoras. Un programa determinado que contiene varios argumentos de línea de comandos puede identificar rápidamente las fuentes o los destinos de los datos proporcionados. También tiene el potencial de alterar el funcionamiento del programa. Hace que el proceso de construcción sea más fácil de poner en el control de código fuente.

En el campo del desarrollo, una amplia gama de tareas no requiere una visualización real. En tales casos, todas las funciones se pueden realizar con la ayuda de argumentos de línea de comandos. Hay un requisito muy raro para una interfaz gráfica literal. Esto ayuda a ahorrar una gran cantidad de dinero, esfuerzo y recursos.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Tabla de contenido

Propiedades | Argumentos de línea de comando en C

Los argumentos de la línea de comandos tienen bastantes propiedades interesantes y útiles. Son los siguientes:

  • Para imprimir el nombre del programa, el comando debe ser argv[0]
  • argv[argc] es esencialmente un puntero nulo
  • Para imprimir el primer argumento que proporciona el usuario, el comando debe ser argv[1]
  • El usuario pasa argumentos de línea de comandos desde la terminal
  • El uso de estos comandos es para controlar los programas desde el exterior, en lugar de tener que codificar los valores dentro del programa.
  • Los argumentos de la línea de comandos se pasan a la función main() en todo momento
  • El primer argumento del comando land es argv[1], mientras que el último comando es argv[n]

Ejemplo de un argumento de línea de comandos

El siguiente es un programa de demostración para argumentos de línea de comandos en C:

// Programa en C para ilustrar

// argumentos de la línea de comandos

#include<stdio.h>

int main(int argc,char* argv[])

{

contador int;

printf(“El nombre del programa es: %s”,argv[0]);

si (argc==1)

printf(“\nNo se pasó ningún argumento de línea de comando adicional que no sea el nombre del programa”);

si(argc>=2)

{

printf(“\nNúmero de argumentos pasados: %d”,argc);

printf(“\n—-Los siguientes son los argumentos de la línea de comandos aprobados—-“);

for(contador=0;contador<argc;contador++)

printf(“\nargv[%d]: %s”,contador,argv[contador]);

}

devolver 0;

}

La salida difiere según varios escenarios. Se han explicado más detalladamente individualmente.

  1. Sin argumento:

Para producir el siguiente resultado, el código debe ejecutarse sin pasar un argumento:

Salida 1

$ ./a.fuera

El nombre del programa es: ./a.out

No se pasó ningún argumento de línea de comando adicional que no sea el nombre del programa

  • Con tres argumentos:

Para producir el siguiente resultado, el código debe ejecutarse con tres argumentos.

Salida 2 –

$ ./a.out Primero Segundo Tercero

El nombre del programa es: ./a.out

Número de argumentos aprobados: 4

—-Los siguientes son los argumentos de la línea de comando aprobados—-

argv[0]: ./a.fuera

argv[1]: Primero

argv[2]: Segundo

argv[3]: Tercero

  • Con un solo argumento:

El código debe compilarse y ejecutarse con un solo argumento que debe estar separado por espacios y entre comillas para producir el siguiente resultado.

Salida 3 –

$ ./a.out “Primero Segundo Tercero.”

El nombre del programa es: ./a.out

Número de argumentos aprobados: 2

—-Los siguientes son los argumentos de la línea de comando aprobados—-

argv[0]: ./a.fuera

argv[1]: Primero Segundo Tercero

  • Con un solo argumento entre comillas y separado por espacio:

El código debe compilarse y ejecutarse con un solo argumento separado por un espacio pero entre comillas simples para generar el siguiente resultado.

Salida 4 –

$ ./a.out 'Primero Segundo Tercero'

El nombre del programa es: ./a.out

Número de argumentos aprobados: 2

—-Los siguientes son los argumentos de la línea de comando aprobados—-

argv[0]: ./a.fuera

argv[1]: Primero Segundo Tercero

Ventajas de los argumentos de línea de comandos en C

Hay varios beneficios de usar argumentos de línea de comando en C. Son los siguientes:

  • Los argumentos de la línea de comandos en C se pueden usar cuando un programador o usuario quiere pasar los valores al programa desde adentro en lugar de hacerlo internamente.
  • Las aplicaciones de línea de comandos se pueden hacer muy fácilmente para usarse en archivos por lotes o scripts. Esto es de gran ayuda en lo que respecta a las pruebas o compilaciones automatizadas.
  • La línea de comandos es más fácil de desarrollar si los programadores escriben las herramientas en lugar de usarlas. Se considera que ingresar argumentos es una tarea mucho más compleja y que requiere más tiempo que generar un flujo de texto.
  • Los flujos de entrada, salida y error se pueden redirigir muy fácilmente cuando la información se puede enviar o recibir desde varios archivos y aplicaciones.
  • El mecanismo de devolución de errores en los argumentos de la línea de comandos es bastante estándar y simple.
  • Cuando un programador o usuario está tratando de obtener acceso desde su hogar o en la carretera, básicamente mientras está en movimiento, el uso de shells remotos u otras conexiones similares facilitan en lo más mínimo la realización de tareas.
  • Para la función de especificar varios archivos, están presentes estándares de sintaxis comodín definidos, que se basan y se basan en el conocimiento existente del desarrollador o programador.
  • Las líneas de comando son convincentes y extremadamente rápidas.

Hablando de ventajas en varios argumentos de la línea de comandos, el siguiente es otro ejemplo detallado o demostración de cómo debería implementarlos.

#incluir <stdio.h>

#include <conio.h>

//se llama al método principal al que se pasan los argumentos de la línea de comandos al programa

int main(int argc, char *argv[])

{

//se define una variable entera

en un;

//si se aplica la condición para comprobar si el número de argumentos pasados ​​al programa es mayor o igual a dos, y si la condición es verdadera, se imprimen los argumentos de la línea de comandos pasados ​​al programa. De lo contrario, no se pasa ningún argumento al programa se imprime

si (argc >= 2)

{

printf(“Los argumentos pasados ​​al programa son:\n”);

para(a = 1; a < argc; a++)

{

printf(“El argumento pasado al programa es: %s\t”, argv[a]);

}

}

más

{

printf(“No se pasa ningún argumento al programa\n”);

}

devolver 0;

}

Producción:

No se pasa ningún argumento al programa.

Los argumentos de la línea de comandos se pasan al programa en el código mencionado anteriormente llamando al método principal. El siguiente paso es la definición de una variable entera. A continuación, se pasa la condición para comprobar si el recuento de argumentos pasados ​​al programa es mayor o igual a 2. Los argumentos de la línea de comandos pasados ​​al programa se imprimen si la condición es verdadera. Si no, no se pasa ningún argumento al programa ni se imprime.

Conclusiones

Obtenga más información sobre la importancia de los argumentos de la línea de comandos en C y C++ registrándose en el programa Executive PG de upGrad en desarrollo de software: especialización en desarrollo de pila completa . El curso de 13 meses está diseñado para ayudar a los aspirantes a profesionales de TI a dominar Java, Spring, Hibernate, HTML, React, Git y una variedad de otros lenguajes de programación y herramientas para crear aplicaciones complejas como Quora y Swiggy.

El programa también ofrece una Certificación Ejecutiva gratuita de 4 meses en Data Science & Machine Learning.

¿Cuáles son las desventajas básicas que deben enfrentar los programadores al implementar argumentos de línea de comando en C?

Aunque los argumentos de la línea de comandos en C son convenientes para los desarrolladores y programadores, tienen algunas desventajas. Las personas que no tienen los conocimientos básicos y no están acostumbradas a trabajar con estos comandos pueden resultar bastante difíciles de aprender y adaptarse, especialmente en un período corto. Sin embargo, esto no es un problema para los programadores y desarrolladores expertos. Pero a veces resulta ser un obstáculo para los empleados jóvenes que pueden provenir de campos diferentes o adyacentes. Además, los argumentos de la línea de comandos necesitan un teclado para implementarse y ejecutarse. Esto a menudo se convierte en una barrera si alguien necesita acceder a él a través de su teléfono o iPad, etc.

¿Cuáles son los delimitadores que se utilizan para separar los argumentos de la línea de comandos?

Para separar los argumentos de la línea de comandos, generalmente se usan espacios en blanco. Separan el nombre del comando de sus parámetros y separan varios parámetros entre sí. También son útiles al separar una lista de diferentes valores. Los espacios en blanco múltiples generalmente se tratan como un solo espacio en blanco. La única excepción a esto sucede en una cadena entre comillas o un comentario entre comillas simples.

¿Es posible convertir argumentos de línea de comandos?

Todos los argumentos de la línea de comandos se transmiten como una cadena. Los valores numéricos siempre deben ser convertidos por programadores o usuarios a sus formas internas, usando esfuerzo manual. La función principal siempre recibe sus parámetros, que normalmente es una matriz de cadenas. Este es el único argumento de función que acepta la función principal. Los tipos de datos de cadena están hechos para usarse mientras se almacenan argumentos de línea de comando.