C ++ atexit () - C ++ Standard Library

Fungsi atexit () di C ++ mendaftarkan fungsi yang akan dipanggil pada penghentian program normal.

Fungsi atexit () di C ++ mendaftarkan fungsi yang akan dipanggil pada penghentian program normal.

atexit () prototipe

 extern int atexit (void (* func) (void));

Fungsi ini didefinisikan dalam file header.

atexit () Parameter

  • func: Pointer ke fungsi yang akan dipanggil pada penghentian program normal.

atexit () Nilai kembali

Fungsi atexit () mengembalikan:

  • Nol jika registrasi fungsi berhasil.
  • Bukan nol jika registrasi fungsi gagal.

Contoh 1: Bagaimana fungsi atexit () bekerja?

 #include #include using namespace std; void bye() ( cout << "Program Exiting Successfully"; ) int main() ( int x; x = atexit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Pendaftaran Program berhasil Keluar Berhasil

Lebih dari satu fungsi dapat didaftarkan untuk dijalankan pada penghentian.

Jika lebih dari satu fungsi atexit terdaftar, maka akan dijalankan dalam urutan terbalik, yaitu fungsi yang terdaftar atlast dijalankan pertama kali. Fungsi yang sama dapat didaftarkan lebih dari satu kali.

Jumlah panggilan fungsi yang bisa didaftarkan dengan atexit () bergantung pada implementasi perpustakaan tertentu. Namun batas minimumnya adalah 32.

Contoh 2: Mendaftarkan beberapa fungsi dengan atexit ()

 #include #include using namespace std; void exit1() ( cout << "Exit Function 1" << endl; ) void exit2() ( cout << "Exit Function 2" << endl; ) void exit3() ( cout << "Exit Function 3" << endl; ) int main() ( int x1, x2, x3; /* Executed at last*/ x1 = atexit(exit1); x2 = atexit(exit2); /* Executed at first */ x3 = atexit(exit3); if ((x1 != 0) or (x2 != 0) or (x3 != 0)) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Registrasi berhasil Keluar Fungsi 3 Fungsi Keluar 2 Fungsi Keluar 1

Jika fungsi terdaftar melontarkan pengecualian yang tidak tertangani saat dipanggil saat terminasi, fungsi terminate () dipanggil.

Contoh 3: atexit () dengan fungsi memunculkan pengecualian yang tidak tertangani

 #include #include using namespace std; void bye() ( cout << "Generates Exception"; int a = 5, b = 0; int x = a/b; /* Program will terminate here */ cout << "Division by zero"; ) int main() ( int x; x = atexit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Pendaftaran berhasil Menghasilkan Pengecualian

Artikel yang menarik...