Actually it terminate calling process
Terminates the process normally, performing the regular cleanup for terminating processes.
First, all functions registered by calls to atexit are executed in the reverse order of their registration. Then, all streams are closed and the temporary files deleted, and finally the control is returned to the host environment.
The status argument is returned to the host environment.
Status value returned to the parent process. Generally, a return value of 0 or EXIT_SUCCESS indicates success, and any other value or the constant EXIT_FAILURE is used to indicate an error or some kind of abnormal program termination.
It returns nothing
An example is
/* exit example */
int main ()
FILE * pFile;
pFile = fopen ("myfile.txt","r");
printf ("Error opening file");
/* file operations here */