C ++ atexit () - C ++ standardbibliotek

Atexit () -funksjonen i C ++ registrerer en funksjon som skal kalles ved normal programavslutning.

Atexit () -funksjonen i C ++ registrerer en funksjon som skal kalles ved normal programavslutning.

atexit () prototype

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

Denne funksjonen er definert i topptekstfilen.

atexit () Parametere

  • Func: peker til funksjonen som skal ringes opp ved normal programavslutning.

atexit () Returverdi

Funksjonen atexit () returnerer:

  • Null hvis registreringsregistreringen er vellykket.
  • Ikke null hvis funksjonsregistreringen mislyktes.

Eksempel 1: Hvordan fungerer atexit () -funksjon?

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

Når du kjører programmet, vil utdataene være:

 Registrering vellykket Program avsluttes vellykket

Mer enn én funksjon kan registreres for å utføre ved avslutning.

Hvis mer enn én atexit-funksjon er registrert, blir de utført i omvendt rekkefølge, dvs. at funksjonen registrert atlast utføres først. Den samme funksjonen kan registreres mer enn en gang.

Antall funksjoner som kan registreres med atexit () avhenger av den spesifikke bibliotekimplementeringen. Minimumsgrensen er imidlertid 32.

Eksempel 2: Registrering av flere funksjoner med 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; )

Når du kjører programmet, vil utdataene være:

 Registrering vellykket Avslutningsfunksjon 3 Avslutningsfunksjon 2 Avsluttingsfunksjon 1

Hvis en registrert funksjon kaster et ubehandlet unntak når det kalles ved avslutning, kalles funksjonen terminate ().

Eksempel 3: atexit () med funksjonskasting unhandled unntak

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

Når du kjører programmet, vil utdataene være:

 Registreringen vellykket genererer unntak

Interessante artikler...