_onexit, _onexit_m

 

Publicado: julio de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Registra una rutina para llamar a la hora de salida.

_onexit_t _onexit(  
   _onexit_t function  
);  
_onexit_t_m _onexit_m(  
   _onexit_t_m function  
);  

Parámetros

function
Puntero a una función que se llamará al salir.

_onexitDevuelve un puntero a la función si es correcto o NULL si no hay ningún espacio para almacenar el puntero de función.

El _onexit función se pasa la dirección de una función (function) que se llamará cuando el programa finaliza con normalidad. Las llamadas sucesivas a _onexit crea un registro de las funciones que se ejecutan en orden LIFO (último-en-primero en salir). Las funciones que se pasan a _onexit no pueden tomar parámetros.

En el caso cuando _onexit se llama desde un archivo DLL, rutinas registradas con _onexit ejecutar en un archivo DLL de la descarga después de DllMain se llama con DLL_PROCESS_DETACH.

_onexit es una extensión de Microsoft. Para la portabilidad de ANSI, use atexit. El _onexit_m versión de la función es para uso de modo mixto.

RutinaEncabezado necesario
_onexit<stdlib.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

// crt_onexit.c  
  
#include <stdlib.h>  
#include <stdio.h>  
  
/* Prototypes */  
int fn1(void), fn2(void), fn3(void), fn4 (void);  
  
int main( void )  
{  
   _onexit( fn1 );  
   _onexit( fn2 );  
   _onexit( fn3 );  
   _onexit( fn4 );  
   printf( "This is executed first.\n" );  
}  
  
int fn1()  
{  
   printf( "next.\n" );  
   return 0;  
}  
  
int fn2()  
{  
   printf( "executed " );  
   return 0;  
}  
  
int fn3()  
{  
   printf( "is " );  
   return 0;  
}  
  
int fn4()  
{  
   printf( "This " );  
   return 0;  
}  

This is executed first.  
This is executed next.  

System::Diagnostics::Process:: cerrado

Control de proceso y entorno
atexit
salir, _Exit, _exit
__dllonexit

Mostrar: