_onexit, _onexit_m

Rejestruje procedurę, która ma być wywoływana w czasie zakończenia.

Składnia

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

Parametry

function
Wskaźnik do funkcji, która ma być wywoływana podczas zamykania.

Wartość zwracana

_onexit Zwraca wskaźnik do funkcji, jeśli działanie powiedzie się lub NULL jeśli nie ma miejsca do przechowywania wskaźnika funkcji.

Uwagi

Funkcja _onexit jest przekazywana adres funkcji (function), która ma być wywoływana, gdy program kończy się normalnie. Kolejne wywołania w celu _onexit utworzenia rejestru funkcji wykonywanych w kolejności LIFO (last-in-first-out). Funkcje przekazane do _onexit polecenia nie mogą przyjmować parametrów.

W przypadku _onexit wywołania z biblioteki DLL procedury zarejestrowane przy _onexit uruchomieniu po usunięciu biblioteki DLL po DllMain wywołaniu polecenia za pomocą DLL_PROCESS_DETACHpolecenia .

_onexit to rozszerzenie firmy Microsoft. W przypadku przenośności ANSI użyj polecenia atexit. Wersja _onexit_m funkcji jest używana w trybie mieszanym.

Wymagania

Procedura Wymagany nagłówek
_onexit <stdlib.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

// 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;
}

Wynik

This is executed first.
This is executed next.

Zobacz też

Kontrola procesu i środowiska
atexit
exit, _Exit, _exit
__dllonexit