Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

_onexit, _onexit_m

Registra una rutina que se llama en el tiempo de salida.

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

function

Puntero a una función que se llama en la salida.

_onexit devuelve un puntero a la función si correctamente o a NULL si no hay espacio para almacenar el puntero a función.

La función de _onexit se pasa la dirección de una función (function) que se llamará cuando el programa termina normalmente. Las llamadas sucesivas a _onexit crean un registro de las funciones que se ejecutan en tipo LIFO (último en entrar, primero en salir) orden. las funciones pasadas a _onexit no pueden tomar parámetros.

En caso _onexit se denomina dentro de un archivo DLL, rutinas registradas con el rendimiento de _onexit en un archivo DLL que descarga después de que DllMain se denomina con DLL_PROCESS_DETACH.

_onexit es una extensión de Microsoft. Para la portabilidad de ANSI, utilice atexit. La versión de _onexit_m de la función se usa en modo mixto.

rutina

Encabezado necesario

_onexit

<stdlib.h>

Para obtener más información de compatibilidad, vea compatibilidad 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.

Adiciones de comunidad

AGREGAR
Mostrar: