Professional Documents
Culture Documents
Todos los programas en lenguaje C deben tener la funcin main(). Algunos programadores colocan el main() al principio del archivo, otros al final, puede ir en cualquier parte del archivo fuente. 7.1. ARGUMENTOS EN LA LINEA DE ORDENES El lenguaje C genera cdigo procurando que el intercambio de argumentos sea compatible con UNIX cuando se realiza la ejecucin de un programa. Por ejemplo, es muy comn que los programas ( tal es el caso de los comandos del sistema operativo) acepten una serie de parmetros al realizar la ejecucin, es decir: Ej 7.1. Paso de parmetros aun programa o comando en la lnea de rdenes.
copy archivo1 archivo2 dir *.c /p attrib - r -h -s *.* tarea /AYUDA tarea /?
En el Turbo C,
argc, argv, env
por convencin la funcin main() acepta tres parmetros (o argumentos), ellos son:
Argumentos
argc argv env
Descripcin # de argumentos Direccin de una matriz de punteros a c/u de los argumentos Direccin de una matriz de punteros a las variables de entorno
Es decir
main(int argc, char *argv[], char *env[]); argc : argv[1]: argv[2]: argv[argc-1]: argv[argc]: argv[0]: Nmero de argumentos pasados Direccin del primer argumento Direccin del 2 argumento Direccin del ultimo argumento NULL
58
Cada elemento env[] almacena una cadena de la forma ENVAR=valor , donde ENVAR es una variable de ambiente o de entorno, tal como el PATH. el elemento valor contiene el valor para el cual est seteada la variable ENVAR. Es decir, si la variable de ambiente es el PATH, su valor puede ser C:\DOS; C:\TC;C:\TC\BIN, etc. Algunos formatos vlidos de la funcin main
main(); main(int argc); main(int argc, char *argv[]); main(int argc, char *argv[], char *env[]);
AL compilar dicho cdigo fuente, se generar el programa Argu.exe , el cual puede ser ejecutado desde el "prompt" del sistema operativo. Si se ejecuta Argu, solamente imprime las variables de ambiente Si se ejecuta Argu 1, imprimir el primer argumento y luego las variables de ambiente
---------------------------------------------------------------------------------*/ #include <stdio.h> void main(int argc,char *argv[],char *ent[]) { int i; for(i=0;i<argc;i++) printf("%s \n",argv[i]); printf("\n%d\n",argc); }
Herramientas de programacin A este programa se le han pasado 4 argumentos: HOLA, 1 ,2 y /p Adems imprime el nombre del programa, pues este se encuentra almacenado en argv[0].
59
Ej 7.4. Un ejemplo clsico del uso de argumentos puede ser el paso de un parmetro que modifique la ejecucin de un determinado programa, esto de acuerdo al argumento pasado. Como los argumento son cadenas de caracteres, toda comparacin que se realice, se debe hacerse con funciones dedicadas a tal efecto.
#include <stdio.h> #include <string.h> void main(int argc,char *argv[],char *ent[]) { if(!strcmp(argv[1],"/?")) { printf("pro [/ARG]\n"); printf("[ARG]\n"); printf("/? : Ayuda\n"); printf("/1 : Imprime HOLA\n"); } if(!strcmp(argv[1],"/1")) { printf("HOLA\n"); } }
Si quiere indicar que al main() no retorna valores y no se le pasan argumentos se escribe con el siguiente formato
void main(void)
60