[Duda] Valor de retorno main

Iniciado por apoeti, 9 Septiembre 2012, 21:54 PM

0 Miembros y 1 Visitante están viendo este tema.

apoeti

Hola.
Esta vez os voy a preguntar sobre el valor de retorno de main(). Me he estado informando y he visto que sirve para indicar al sistema operativo si el programa ha finalizado bien (0) o mal (cualquier otro valor). He visto que según el valor devuelve al terminal un mensaje de error o algo así, dependiendo del S.O.
Bueno, no he encontrado mucha información en Internet acerca de la utilidad del valor de retorno. Lo que quiero es que me expliquéis su utilidad, a ser posible, con algún ejemplo.

Saludos.

xiruko

el valor de retorno no sirve para nada mas que para saber como ha acabado tu programa. como has dicho, si acaba bien suele devolver un 0, por eso lo de "return 0;" al final. pero tambien puedes usarlo para saber que error ha habido en tu programa. por ejemplo:


int main(int argc, char** argv) {

FILE *f;

if (argc != 3) return 1;

if (!f=fopen("archivo.txt", "r")) return 2;

        //....


en este caso, si el numero de argumentos pasados al programa no es correcto y el programa se cierra por este error, el programa devolvera el valor 1. luego si hay un error abriendo "archivo.txt", el programa devolvera 2 y se cerrara. y asi con los errores que tu quieras. asi que no es mas que ponerle etiquetas a los distintos errores que puedan suceder para asi poder arreglarlo de manera rapida.

para ver valor de retorno de tu programa, en windows no se como sera, pero en linux y en mac no tienes mas que hacer uso de la variable $? en la terminal de esta manera:


echo $?


y te dira el valor de retorno del ultimo programa ejecutado.

un saludo!

twins

Bien otra explicacion como sabemos  main es una funcion
int main(void){
return(0);
}
es de tipo entero por lo tanto debe retornar un valor, no necesita parametros por eso
ponemos void "vacio" en informatica el valor 0 significa falso y cualquier otro valor significa verdadero al retornar 0 el programa es como si le dijera al sistema operativo que el programa termino correctamente su ejecucion, si en cualquier parte del codigo pones return(0) el programa finaliza.

apoeti

Vamos, que el valor de retorno de main() funciona como en el resto de funciones que puede crear el programador. Gracias, ya lo entiendo.