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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cerrar programa con funcion exit
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cerrar programa con funcion exit  (Leído 36,716 veces)
arcadio2r

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Cerrar programa con funcion exit
« en: 19 Diciembre 2012, 17:39 pm »

Buenas,

tengo una duda con la función "exit" y la liberación de recursos.

¿Hace falta la llamada "exit" para finalizar el programa correctamente y liberar los recursos del proceso, o no hace falta esta instrucción para finalizar liberando los recursos porque el compilador ya la introduce?

Muchas gracias.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Cerrar programa con funcion exit
« Respuesta #1 en: 19 Diciembre 2012, 17:48 pm »

En el lenguaje C para terminar una aplicación desde la función main basta con una sentencia "return N;" ya que en esa función es equivalente a "exit(N);".

Desde cualquier otra función debes utilizar "exit(N);".

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
arcadio2r

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Cerrar programa con funcion exit
« Respuesta #2 en: 20 Diciembre 2012, 11:08 am »

En el lenguaje C para terminar una aplicación desde la función main basta con una sentencia "return N;" ya que en esa función es equivalente a "exit(N);".

Desde cualquier otra función debes utilizar "exit(N);".

Un saludo

Primero de todo, gracias por la respuesta.

La pregunta que hago hace referencia a un "void main". En este caso, el codigo finaliza correctamente con y sin el "exit(x)". ¿Pero sin el exit el compilador liberará los recursos del proceso?
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Cerrar programa con funcion exit
« Respuesta #3 en: 20 Diciembre 2012, 17:30 pm »

El problema de utilizar void main es que el sistema operativo está esperando un valor de retorno de tu programa y no estas retornando nada. Utilizar void main, a pesar de que funciona, no  es lo correcto. En este caso de void main deberías utilizar siempre exit(N) para salir.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Cerrar programa con funcion exit
« Respuesta #4 en: 20 Diciembre 2012, 17:51 pm »

La pregunta que hago hace referencia a un "void main". En este caso, el codigo finaliza correctamente con y sin el "exit(x)". ¿Pero sin el exit el compilador liberará los recursos del proceso?
No se recomienda el uso de "void main()" porque su soporte depende del compilador utilizado y, si se soporta, utilizar "return N;" (en main) o "exit(N);" es un error ya que la definición utilizada no permite retornar un valor. Mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|

En cuanto a recursos depende a que te refieras. El estándar de C solo indica que en una terminación normal del programa los bufers se vacían, los archivos se cierran y algunos otros detallitos mas (por ejemplo los archivos creados mediante la función tmpfile se eliminan).

Para cualquier otro recurso no hay otra opción que revisar la documentación del compilador.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
ithory

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Cerrar programa con funcion exit
« Respuesta #5 en: 22 Diciembre 2012, 13:42 pm »

Al final de cada proceso para liberar los recursos hay que usar la llamada al sistema exit();, exit(0) por ejemplo.

Pero solo al final de cada proceso, por ejemplo si creas un proceso con fork();

int valor;
valor=fork();

if(valor == 0) //estamos en el proceso hijo, cuando acabemos de poner el código del hijo haremos un
.....
.....
.....
exit(0)
« Última modificación: 22 Diciembre 2012, 13:45 pm por ithory » En línea

arcadio2r

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Cerrar programa con funcion exit
« Respuesta #6 en: 23 Diciembre 2012, 13:24 pm »

Muchas gracias.  ;-)

Ya me ha quedado claro!

Feliz Navidad y Año Nuevo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cerrar mi programa
Programación Visual Basic
Kizar 4 2,458 Último mensaje 21 Noviembre 2005, 22:20 pm
por Kizar
como puedo cerrar un programa con VB?
Programación Visual Basic
Xephiro 2 2,661 Último mensaje 12 Junio 2006, 19:40 pm
por Xephiro
no ce termina de cerrar mi programa
Programación C/C++
Ghalad 0 1,722 Último mensaje 6 Agosto 2010, 00:37 am
por Ghalad
Cerrar una ventana sin cerrar el programa completo??
Java
Xedrox 1 9,972 Último mensaje 4 Julio 2011, 04:16 am
por klaine
funcion al cerrar form
Programación Visual Basic
elezekiel 7 4,807 Último mensaje 17 Noviembre 2014, 02:44 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines