Introducción
En este proyecto, aprenderás a analizar y manejar los argumentos de línea de comandos en un programa C. Esta es una habilidad fundamental en el desarrollo de software, ya que muchos programas aceptan y procesan argumentos de línea de comandos para personalizar su comportamiento.
👀 Vista previa
$ gcc cmd.c -o cmd
$./cmd --arg1 1 --arg2 demo --arg9 labex
arg1:1
arg2:demo
arg9:labex
🎯 Tareas
En este proyecto, aprenderás:
- Cómo crear un archivo C y escribir la estructura básica de un programa C
- Cómo analizar los argumentos de línea de comandos y extraer los nombres y valores de los parámetros
- Cómo imprimir los nombres y valores de los parámetros en el formato requerido
🏆 Logros
Después de completar este proyecto, serás capaz de:
- Comprender el concepto de argumentos de línea de comandos y cómo utilizarlos en un programa C
- Implementar un programa que pueda analizar y manejar los argumentos de línea de comandos
- Aplicar tus conocimientos de programación en C para resolver un problema práctico
Crea el archivo C
En este paso, crearás el archivo C para el programa de argumentos de línea de comandos.
- Abre una terminal y navega hasta el directorio del proyecto:
cd ~/proyecto
- Crea un nuevo archivo C llamado
cmd.cen el directorio del proyecto:
touch cmd.c
- Abre el archivo
cmd.cen un editor de texto y agrega el siguiente código:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
// Tu código irá aquí
return 0;
}
Esta es la estructura básica del programa C que manejará los argumentos de línea de comandos.
Implementa el análisis de argumentos de línea de comandos
En este paso, implementarás la lógica para analizar los argumentos de línea de comandos e imprimir los nombres y valores de los parámetros.
- En la función
main(), agrega un bucle para iterar a través de los argumentos de línea de comandos:
for (int i = 1; i < argc; i++) {
// Tu código irá aquí
}
El bucle comienza desde el índice 1 porque argv[0] contiene el nombre del programa.
- Dentro del bucle, comprueba si el argumento actual comienza con
--:
if (strncmp(argv[i], "--", 2) == 0) {
// El argumento es un parámetro
char *param = argv[i] + 2; // Elimina el prefijo "--"
char *value = NULL;
// Comprueba si hay un valor después del parámetro
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // Omite el argumento de valor
}
printf("%s:%s\n", param, value);
}
Este código extrae el nombre y el valor del parámetro de los argumentos de línea de comandos e los imprime en el formato requerido.
- El código final es el siguiente:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
for (int i = 1; i < argc; i++) {
if (strncmp(argv[i], "--", 2) == 0) {
char *param = argv[i] + 2; // Elimina el prefijo "--"
char *value = NULL;
// Comprueba si hay un valor después del parámetro
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // Omite el argumento de valor
}
printf("%s:%s\n", param, value);
}
}
return 0;
}
- Guarda el archivo
cmd.c.
Compila y ejecuta el programa
En este paso, compilarás el programa C y lo ejecutarás con algunos argumentos de línea de comandos de ejemplo.
- Compila el archivo
cmd.c:
gcc cmd.c -o cmd
Esto creará un archivo ejecutable llamado cmd.
- Ejecuta el programa con algunos argumentos de línea de comandos de ejemplo:
./cmd --arg1 1 --arg2 demo --arg9 labex
Deberías ver la siguiente salida:
arg1:1
arg2:demo
arg9:labex
- Intenta ejecutar el programa con algunos parámetros duplicados:
./cmd --testarg1 1 --testarg2 demo --testarg1 labex
Deberías ver la siguiente salida:
testarg1:1
testarg2:demo
testarg1:labex
¡Felicidades! Has implementado con éxito el programa de análisis de argumentos de línea de comandos.
Resumen
¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



