Hola,
- Lo primero, la función main puede devolver algo int main o no void main, eso es a tu gusto. Qizás te interese llamar desde un programa a otro programa para que le dé algo...
Un ejemplo absurdo de programa:
#include <windows.h>
#include <stdio.h>
int main (int argc, char *argv[])
{
if (argc==1)
{
printf("\n\tNo se han pasado parametros");
return -1;
}
if (argc > 2)
{
printf ("\n\tDemasiados parametros.");
return -1;
}
if (argc == 2)
{
if (!strcmp(argv[1],"hola"))
{
printf("\n\tHola!!");
exit(1);
}
if (!strcmp(argv[1],"adios"))
{
printf("\n\tadios");
exit(1);
}
}
printf("\n\tEste programa solo acepta los siguientes parametros:\n\thola.\n\tadios.");
return -1;
}
Este programa devuelve "Hola!!" cuando le pasas un hola como argumento y un "adios" cuando le pasas un adios.
Si no le pasas argumentos, te devuelve un error "no se han pasado argumentos", lo mismo ocurre si se le pasa demasiados argumentos, entonces devuelve "Demasiados parametros".
Si se le pasa un parámetro distinto de hola o adios devuelve un error indicando los parámetros que acepta.
Para comprobarlo, deberás llamar al programa mediante la interfaz de comandos y añadirle los parámetros (también se puede hacer desde el compilador, busca y encontrarás un apartado que te permite añadir parámetros para debuggear el programa).
Si te fijas, argc siempre vale 1, porque en argv, en la primera posición (argv[0]), siempre aparece la ruta del programa que se está ejecutando.
Espero que te sirva de ayuda.
Un saludo.