C ++ atexit () - C ++ standardraamatukogu

Funktsioon atexit () C ++ -s registreerib funktsiooni, mida tuleb kutsuda programmi tavapärasel lõpetamisel.

Funktsioon atexit () C ++ -s registreerib funktsiooni, mida tuleb kutsuda programmi tavapärasel lõpetamisel.

atexit () prototüüp

 extern int atexit (tühine (* func) (tühine));

See funktsioon on määratletud päisefailis.

atexit () parameetrid

  • func: funktsiooni kursor, mida kutsutakse programmi tavapärasel lõpetamisel.

atexit () Tagastusväärtus

Funktsioon atexit () tagastab:

  • Null, kui funktsiooni registreerimine on edukas.
  • Kui funktsiooni registreerimine ebaõnnestus, pole null.

Näide 1: Kuidas funktsioon atexit () töötab?

 #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; )

Programmi käivitamisel on väljund järgmine:

 Registreerimine õnnestus Programmist väljumine õnnestus

Lõpetamisel saab registreerida mitu funktsiooni.

Kui registreeritakse mitu atexit-funktsiooni, täidetakse need vastupidises järjekorras, st algul täidetakse atlastiks registreeritud funktsioon. Sama funktsiooni saab registreerida mitu korda.

Funktsioonikõnede arv, mida saab atexit () abil registreerida, sõltub konkreetsest teegi rakendusest. Alampiir on aga 32.

Näide 2: Mitme funktsiooni registreerimine atexit () abil

 #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; )

Programmi käivitamisel on väljund järgmine:

 Registreerimine õnnestus Exit Function 3 Exit Function 2 Exit Function 1

Kui registreeritud funktsioon loob lõpetamise kutsumisel käsitlemata erandi, kutsutakse funktsiooni terminate ().

Näide 3: atexit () koos funktsiooni viskamise käsitlemata erandiga

 #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; )

Programmi käivitamisel on väljund järgmine:

 Registreerimine õnnestus loob erandi

Huvitavad Artiklid...