Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memproses fungsi yang ditentukan saat keluar.
Sintaks
int atexit(
void (__cdecl *func )( void )
);
Parameter
func
Fungsi yang akan dipanggil.
Nilai hasil
atexit mengembalikan 0 jika berhasil, atau nilai bukan nol jika terjadi kesalahan.
Keterangan
Fungsi atexit ini diteruskan alamat fungsi func yang akan dipanggil ketika program berakhir secara normal. Panggilan berturut-turut untuk atexit membuat daftar fungsi yang dijalankan dalam urutan last-in, first-out (LIFO). Fungsi yang diteruskan ke atexit tidak dapat mengambil parameter. atexit dan _onexit gunakan timbunan untuk memegang register fungsi. Dengan demikian, jumlah fungsi yang dapat didaftarkan hanya dibatasi oleh memori timbunan.
Kode dalam atexit fungsi tidak boleh berisi dependensi apa pun pada DLL apa pun yang bisa saja telah dibongkar saat fungsi dipanggil atexit .
Untuk menghasilkan aplikasi yang sesuai dengan ANSI, gunakan fungsi standar atexit ANSI (bukan fungsi serupa _onexit ).
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
atexit |
<stdlib.h> |
Contoh
Program ini mendorong empat fungsi ke tumpukan fungsi yang akan dijalankan ketika atexit dipanggil. Ketika program keluar, program ini dijalankan pada dasar terakhir masuk, pertama keluar.
// 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.
Lihat juga
Kontrol proses dan lingkungan
abort
exit, , _Exit_exit
_onexit, _onexit_m