C/Visual C - Funciones de stdlib.h

 
Vista:

Funciones de stdlib.h

Publicado por CIndy (3 intervenciones) el 17/07/2006 00:41:21
¿En qué ocasiones debería usar las funciones atexit, exit, abort y abs?. Muchas gracias al que me pudiera ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funciones de stdlib.h

Publicado por fernando.gomez (1603 intervenciones) el 17/07/2006 17:59:52
La función exit la puedes llamar cuando quieras terminar tu programa sin tener que hacer el return en main.

void terminar()
{
cout << "Terminando..." << endl;
exit(EXIT_SUCCESS); // aquí termina el programa
}

int main()
{
cout << "Iniciando" << endl;
terminar();
cout << "esto nunca se ejecuta" << endl;
return EXIT_FAILURE;
}

La función atexit toma como parámetro un puntero a función (callback o para usar terminología moderna -de C#-, delegado). C hará entonces que cuando se termine la aplicación -digamos, llamando a exit()- antes de terminar el programa se mande llamar a la función que estableciste como parámetro. Esto es útil, por ejemplo, para hacer labores de limpieza al terminar un programa.

void fnExit1 (void)
{
printf ("Saliendo del programa (1)\n");
}

void fnExit2 (void)
{
printf ("Saliendo del programa (2)");
}

int main ()
{
atexit (fnExit1);
atexit (fnExit2);
printf ("Estamos en main.\n");
return 0;
}

La salida del programa anterior sería:

Estamos en main.
Saliendo del programa (1)
Saliendo del programa (2)

La función abort(), a diferencia de exit(), termina abruptamente el programa, mostrando en consola un mensaje de error. La diferencia entre exit y abort, es que exit cierra flujos de memoria -como archivos- que haya abierto previamente, mientras que con abort no. Esto se emplea cuando sucedió algo muy grave y el sistema ya no se puede recuperar.

Finalmente, abs() regresa el valor absoluto del parámetro.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar