Bagikan melalui


_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