_onexit
, _onexit_m
Mendaftarkan rutinitas yang akan dipanggil pada waktu keluar.
Sintaks
_onexit_t _onexit(
_onexit_t function
);
_onexit_t_m _onexit_m(
_onexit_t_m function
);
Parameter
function
Penunjuk ke fungsi yang akan dipanggil saat keluar.
Nilai hasil
_onexit
mengembalikan penunjuk ke fungsi jika berhasil atau NULL
jika tidak ada spasi untuk menyimpan penunjuk fungsi.
Keterangan
Fungsi _onexit
ini diteruskan alamat fungsi (function
) untuk dipanggil ketika program berakhir secara normal. Panggilan berturut-turut untuk _onexit
membuat daftar fungsi yang dijalankan dalam urutan LIFO (last-in-first-out). Fungsi yang diteruskan ke _onexit
tidak dapat mengambil parameter.
Dalam kasus ketika _onexit
dipanggil dari dalam DLL, rutinitas yang terdaftar dengan _onexit
eksekusi ketika DLL dibongkar, setelah DllMain
dipanggil dengan DLL_PROCESS_DETACH
.
_onexit
adalah ekstensi Microsoft. Untuk portabilitas ANSI, gunakan atexit
. Versi _onexit_m
fungsi ini adalah untuk penggunaan mode campuran.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_onexit |
<stdlib.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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;
}
Output
This is executed first.
This is executed next.
Lihat juga
Kontrol proses dan lingkungan
atexit
exit
, , _Exit
_exit
__dllonexit