How to terminate program in C++
Hey, guys… Today we are going to learn how to terminate a program in C++. We can terminate a program in C++ in different methods that are listed below:
- By using
exit()
function - By using
abort()
or _Exit() function - By using the return statement in
main()
Before discussing different methods let’s discuss the cleanup process which is followed at the time of terminating a program.
Cleanup process and atexit()
function
Cleanup process: This process normally occurs before the termination of a program takes place. It is also known as C++ run time termination processing. The cleanup process includes:
- Calling of the global objects’ and the static objects’ destructors.
- Calling of functions registered successfully with atexit() function.
- Connection termination and flushing the buffer. Temporary files are also deleted.
- Returning the control back to the host i.e Operating System.
atexit() function: It registers the functions to be called during the C++ run time termination of a program. atexit() takes the function to be registered as the argument and returns zero on successful registration. Header file for atexit() function is <stdlib.h> or <cstdlib>.
#include <iostream> #include <stdlib.h> using namespace std; // creating a function named Quit void Quit() { cout<<"Thanks for choosing our program,good bye"<<endl; } int main() { //registering Quit with atexit() int a=atexit(Quit); if (a != 0) cout<<"Registration failed"; exit(0); return 0; }
Output:
Thanks for choosing our program,good bye
1. Terminating a program using exit()
function
exit() function terminates a program in C++. The header file for exit function is <stdlib.h>or <cstdlib>. It terminates the program normally i.e. It performs the cleanup process ( also known as C++ runtime termination). The code written after exit()
does not get executed in a program. The argument that we pass to exit()
function ( usually 0 or 1) is returned as the exit/return code by the exit()
function.
#include <iostream> #include <stdlib.h> using namespace std; // creating a function named Quit void Quit() { cout<<"Thanks for choosing our program,good bye"<<endl; } int main() { string name; //registering Quit with atexit() int a=atexit(Quit); if (a != 0) cout<<"Registration failed"; //Calling the exit() function exit(0); cout<<"enter your name "; cin>>name; cout<<"Hello "<<name; return 0; }
Output:
Thanks for choosing our program, good bye
2. Terminating a program using _Exit()
or abort()
function
Both abort()
and _Exit()
are similar functions. Both abort()
and _Exit()
terminate a program immediately. Both of these functions are available in the header file <stdlib.h>
or <cstdlib>
. _Exit()
and abort()
terminate the program immediately without performing any cleanup process like exit(). Thus the functions linked with atexit()
are not executed. The code which is written after _Exit()
/ abort()
does not get executed in a program.
The only difference between _Exit()
and abort()
is that an argument (usually 0 or 1) is passed to _Exit()
like exit()
whereas no argument is passed to abort()
.
Demonstrating _Exit() function:
#include <iostream> #include <stdlib.h> using namespace std; // creating a function named Quit void Quit() { cout<<"Thanks for choosing our program, good bye"<<endl; } int main() { string name; //registering Quit with atexit() int a=atexit(Quit); if (a != 0) cout<<"Registration failed"; //Calling the _Exit() function _Exit(0); cout<<"enter your name "; cin>>name; cout<<"Hello "<<name; return 0; }
Demonstrating abort()
function:
#include <iostream> #include <stdlib.h> using namespace std; // creating a function named Quit void Quit() { cout<<"Thanks for choosing our program, good bye"<<endl; } int main() { string name; //registering Quit with atexit() int a=atexit(Quit); if (a != 0) cout<<"Registration failed"; //Calling the abort() function abort(); cout<<"enter your name "; cin>>name; cout<<"Hello "<<name; return 0; }
Output:
Aborted (core dumped)
3. Terminating a program using return statement in main()
Using the return statement in main()
is similar to exit()
function discussed above. The return statement returns back the control from a function and code written after the return statement is not executed. Thus return statement written in main() is used to terminate a program as it returns the control back from the main()
function. Its syntax is:
return data_of_return_datatype
Like exit it terminates, the program normally i.e It performs the cleanup process ( also known as C++ runtime termination). Return data is similar to the argument passed to exit() and acts as return/exit code for the program.
#include <iostream> #include <stdlib.h> using namespace std; // creating a function named Quit void Quit() { cout<<"Thanks for choosing our program, good bye"<<endl; } int main() { string name; //registering Quit with atexit() int a=atexit(Quit); if (a != 0) cout<<"Registration failed"; /* Using return statement in main() to terminate the program */ return 1; cout<<"enter your name "; cin>>name; cout<<"Hello "<<name; }
Output:
Thanks for choosing our program, good bye
Also, do refer:
Leave a Reply