elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Duda] Valor de retorno main
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Valor de retorno main  (Leído 3,393 veces)
apoeti

Desconectado Desconectado

Mensajes: 81



Ver Perfil
[Duda] Valor de retorno main
« en: 9 Septiembre 2012, 21:54 pm »

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.


En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: [Duda] Valor de retorno main
« Respuesta #1 en: 9 Septiembre 2012, 22:14 pm »

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:

Código
  1. int main(int argc, char** argv) {
  2.  
  3. FILE *f;
  4.  
  5. if (argc != 3) return 1;
  6.  
  7. if (!f=fopen("archivo.txt", "r")) return 2;
  8.  
  9.        //....
  10.  

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:

Código:
echo $?

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

un saludo!


En línea

twins

Desconectado Desconectado

Mensajes: 54


Ver Perfil
Re: [Duda] Valor de retorno main
« Respuesta #2 en: 10 Septiembre 2012, 01:22 am »

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.
En línea

apoeti

Desconectado Desconectado

Mensajes: 81



Ver Perfil
Re: [Duda] Valor de retorno main
« Respuesta #3 en: 12 Septiembre 2012, 16:16 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines