_onexit
, _onexit_m
Çıkış zamanında çağrılmak üzere bir yordam kaydeder.
Sözdizimi
_onexit_t _onexit(
_onexit_t function
);
_onexit_t_m _onexit_m(
_onexit_t_m function
);
Parametreler
function
Çıkışta çağrılacak bir işlev işaretçisi.
Dönüş değeri
_onexit
başarılı olursa veya NULL
işlev işaretçisini depolamak için boşluk yoksa işleve bir işaretçi döndürür.
Açıklamalar
_onexit
İşleve, program normal şekilde sonlandırıldığında çağrılacak bir işlevin (function
) adresi geçirilir. LIFO (son ilk çıkar) sırasına göre yürütülen işlevlerin bir kaydını oluşturmak için _onexit
ardışık çağrılar. öğesine _onexit
geçirilen işlevler parametre alamıyor.
DLL'nin içinden çağrıldığında_onexit
, dll kaldırıldıktan sonra DllMain
ile DLL_PROCESS_DETACH
çağrıldığında ile kaydedilen _onexit
yordamlar çalıştırılır.
_onexit
bir Microsoft uzantısıdır. ANSI taşınabilirliği için kullanın atexit
. İşlevin _onexit_m
sürümü karma mod kullanımı içindir.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_onexit |
<stdlib.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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;
}
Çıktı
This is executed first.
This is executed next.
Ayrıca bkz.
İşlem ve ortam denetimi
atexit
exit
, _Exit
, _exit
__dllonexit