Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Belirtilen işlevi çıkışta işler.
Sözdizimi
int atexit(
void (__cdecl *func )( void )
);
Parametreler
func
Çağrılacak işlev.
Dönüş değeri
atexit başarılı olursa 0 veya hata oluşursa sıfır olmayan bir değer döndürür.
Açıklamalar
İşlev, atexit program normal şekilde sonlandırıldığında çağrılacak işlevin func adresini alır. Last-in, first-out (LIFO) sırasına göre yürütülen işlevlerin bir kaydını oluşturmak için atexit ardışık çağrılar. öğesine atexit geçirilen işlevler parametre alamıyor.
atexit ve _onexit işlevlerin kaydını tutmak için yığını kullanın. Bu nedenle, kaydedebileceğiniz işlevlerin sayısı yalnızca yığın belleğiyle sınırlıdır.
İşlevdeki atexit kod, işlev çağrıldığında atexit zaten kaldırılmış olabilecek herhangi bir DLL'ye bağımlılık içermemelidir.
Microsoft özgü DLL davranışı: DLL kaldırıldığında, aldıktan DLL_PROCESS_DETACHsonra DllMain DLL'nin atexit geri çağırmaları ters kayıt sırasında çalışır ve son geri çağırma ilk olarak çalışır.
ANSI uyumlu bir uygulama oluşturmak için ANSI standart atexit işlevini (benzer _onexit işlev yerine) kullanın.
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
atexit |
<stdlib.h> |
Örnek
Bu program, çağrıldığında atexit yürütülmek üzere işlev yığınına dört işlev iter. Programdan çıkıldığında, bu işlevleri son ve ilk çıkış sırasında yürütür.
// crt_atexit.c
#include <stdlib.h>
#include <stdio.h>
void fn1( void ), fn2( void ), fn3( void ), fn4( void );
int main( void )
{
atexit( fn1 );
atexit( fn2 );
atexit( fn3 );
atexit( fn4 );
printf( "This is executed first.\n" );
}
void fn1()
{
printf( "next.\n" );
}
void fn2()
{
printf( "executed " );
}
void fn3()
{
printf( "is " );
}
void fn4()
{
printf( "This " );
}
This is executed first.
This is executed next.
Ayrıca bkz.
İşlem ve ortam denetimi
abort
exit, _Exit, _exit
_onexit, _onexit_m