Bildirim
int atexit(void (*func) (void));
Açıklama
Program, exit() fonksiyonu veya main() fonksiyonundan bir değer geri döndürülürek, normal bir şekilde sonlandırıldığında, çağrılacak olan ve func parametresi ile gösterilen fonksiyonu kaydeder.
Program normal bir şekilde sonlandırıldığında, func parametresi ile gösterilen fonksiyon otomatik olarak çağrılır.
Birden fazla fonksiyon kaydı yapıldığında, program sonlandırılınca fonksiyonlar kayıt sırasının tersi bir sırayla çağrılacaktır.
Program en az 32 fonksiyon kaydını destekleyeceğinden, fonksiyonun birden fazla thread tarafından çağrılması herhangi bir kayba neden olmaz.
Parametreler
func: Hızlı program sonlandırma işleminde çağrılacak olan fonksiyonu gösteren bir işaretçidir.
Dönüş değeri
Fonksiyon kayıt işlemi başarı olursa 0 değeri, aksi takdirde sıfır olmayan bir değer geri döndürülür.
Örnek
#include <stdio.h>
#include <stdlib.h>
void fonk(void);
int main(void)
{
atexit(fonk);
exit(EXIT_SUCCESS);
printf("Bilgisayar"); /* Bu işlem satırı hiç devreye girmez. */
return 0;
}
void fonk(void)
{
printf("Program çıkış fonksiyonu devreye girdi!");
}
Yukarıdaki örnekte, program aşağıdaki satırı ekrana yazar:
Program hızlı çıkış fonksiyonu devreye girdi!
Yukarıdaki program, atexit() fonksiyonu ile fonk() adlı fonksiyonu çıkış fonksiyonu olarak kaydeder. exit() fonksiyonu ile programdan çıkış yapıldığında fonk() fonksiyonu devreye girerek ekrana bir karakter dizisi yazar.