Aprenda a acceder a los parámetros de la línea de comandos en C
En sus programas en C, es posible que tenga la necesidad de aceptar parámetros de la línea de comando cuando se inicia el comando.
Para necesidades simples, todo lo que necesita hacer es cambiar la main()
firma de la función de
int main(void)
a
int main (int argc, char *argv[])
argc
es un número entero que contiene la cantidad de parámetros que se proporcionarán en la línea de comando.
argv
es una matriz de cadenas.
Cuando se inicia el programa, nos proporcionan los argumentos en esos 2 parámetros.
Tenga en cuenta que siempre hay al menos un elemento en la argv
matriz: el nombre del programa.
Tomemos el ejemplo del compilador de C que usamos para ejecutar nuestros programas, así:
gcc hello.c -o hello
Si este fuera nuestro programa, tendríamos argc
4 y argv
sería una matriz que contiene
gcc
hello.c
-o
hello
Escribamos un programa que imprima los argumentos que recibe:Te recomendamos Dioses y mitos
#include stdio.hint main (int argc, char *argv[]) { for (int i = 0; i argc; i++) { printf("%sn", argv[i]); }}
Si el nombre de nuestro programa es hello
y lo ejecutamos así: ./hello
, obtendremos esto como salida:
./hello
Si pasamos algunos parámetros aleatorios, como este: ./hello a b c
obtendríamos esta salida en la terminal:
./helloabc
Este sistema funciona muy bien para necesidades simples. Para necesidades más complejas, existen paquetes de uso común como getopt .
Tips C
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
Cómo acceder a los parámetros de la línea de comandos en C
En sus programas en C, es posible que tenga la necesidad de aceptar parámetros de la línea de comando cuando se inicia el comando. Aprenda a acceder a los pa
programar
es
2025-01-04

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente