La función principal de cada programa escrito en C (main) es capaz de recibir argumentos que pueden ser manipulados y procesados. El Ejemplo 7.9 muestra un sencillo programa de prueba de estas capacidades.
Observe primero la línea 7, la cual presenta una la lista de dos argumentos para main:
- argc (argument counter) es el número de argumentos proporcionados en la invocación del programa, incluyendo el nombre del programa.
- argv (arguments vector) es un arreglo de apuntadores a char de longitud argc. Cada elemento del arreglo, hará referencia a una cadena correspondiente al argumento en cuestión.
Suponga que el nombre del archivo del Ejemplo 7.9 es mainArgs.c y que se compila de la siguiente manera:
$gcc -Wall -o cambiaBase mainArgs.c
El ejecutable de mainArgs.c se genera entonces en el archivo cambiaBase, por lo que si ahora se ejecuta el programa de la forma siguiente:
$./cambiaBase 101011101 2 9
Se obtendrá la salida de la siguiente figura (a) y su correspondiente representación mostrada en (b).
(a) Una posible salida del Ejemplo 7.9. |
(b) Representación de argv para la ejecución mostrada en la figura (a). |
Finalmente, note también que el primer argumento es el nombre del programa. Esta característica resulta sumamente conveniente y dota de mucha versatilidad a los programas.