Programación C · 2 min read · Nov 20, 2025
Tutorial de programación en C de Linux parte 22 - Accediendo a los argumentos de la línea de comandos dentro del programa C

En el tutorial anterior, discutimos múltiples conceptos relacionados con los punteros en el lenguaje de programación C. Uno de los conceptos que discutimos fue un arreglo de punteros. Usamos el ejemplo de un arreglo de punteros a enteros para demostrar el concepto.
Cómo acceder a los argumentos de la línea de comandos dentro de un programa C
Pero como se mencionó en ese tutorial, un arreglo de punteros puede ser de diferentes tipos. Por ejemplo, aquí hay un arreglo de punteros a caracteres:
char *arr[] = {"HowtoForge", "FaqForge", "Linux"};Y aquí hay un pequeño programa que muestra cómo se puede usar este arreglo:
#include
int main()
{
char *arr[] = {"HowtoForge", "FaqForge", "Linux"};
printf("\n %s", *arr);
printf("\n %s", *(arr+1));
printf("\n %s", *(arr+2));
return 0;
} ‘arr’ es la dirección del primer elemento de este arreglo. Ahora, dado que este es un arreglo de punteros, el primer elemento (y todos los demás elementos, accedidos sumando 1 y 2 a arr) no es más que una dirección. Así que para acceder al valor que mantiene esa dirección, usamos el operador *.
A continuación se muestra la salida de este programa:
HowtoForge
FaqForge
LinuxAsí es como accedes a los valores de un arreglo de punteros a caracteres. Ahora, debes estar pensando, ¿por qué discutimos todo esto?
Bueno, lo hicimos porque esto nos lleva a otro concepto importante, que es la capacidad de acceder a los argumentos de la línea de comandos en entornos que soportan el lenguaje de programación C. Discutamos esto en detalle.
Como deberías saber a estas alturas, ‘main’ es la primera función en tu programa que se llama cuando se ejecuta el programa. Se llama con dos argumentos: argc y argv. Mientras que el primero te dice sobre el número de argumentos de la línea de comandos, el segundo es en realidad un arreglo de punteros a los propios argumentos.
Por favor, ten en cuenta que el nombre del programa en sí se pasa como un argumento a la función main. Así que debido a esto, el número de argumentos - representado por argc - es uno más que el número real de argumentos pasados al programa. A continuación se muestra un ejemplo:
#include
int main(int argc, char *argv[])
{
printf("\n %d", argc);
printf("\n %s", *argv);
return 0;
} Ahora, ejecutamos este programa - llamado a.out, y presente en el directorio ‘home’ de nuestro sistema - sin ningún argumento. Y aquí está la salida:
1
/home/a.outAsí que puedes ver que el nombre de ejecución del programa se pasó como un argumento. Si hubiera usado el siguiente comando:
/home/a.out htf ffEntonces en ese caso, argc habría sido 3 y argv habría contenido direcciones de las cadenas ‘/home/a.out’, ‘htf’, y ‘ff’.
Aquí hay una mejor manera de escribir el programa de impresión de argumentos:
#include
int main(int argc, char *argv[])
{
for(int i=0; i Vale la pena recordar que los argumentos se almacenan en el arreglo en el mismo orden en que se pasan en la línea de comandos.
Conclusión
Es probable que te encuentres en varias situaciones en las que tendrás que lidiar con argumentos de la línea de comandos dentro de tu código C. Lo que discutimos aquí debería formar una base para ti. Intenta algunos programas de tu parte para tener una mejor idea de cómo se accede a los argumentos de la línea de comandos dentro de un programa C.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.