The purpose of the exit() function is to terminate the execution of a program. The “return 0”(or EXIT_SUCCESS) implies that the code has executed succesfully without any error. Exit codes other than “0”(or EXIT_FAILURE) indicate the presence of an error in the code. Among all the exit codes, the codes 1, 2, 126 – 165 and 255 have special meanings and hence these should be avoided for user-defined exit codes.
void exit(int return_code)
Note: It is also to taken into consideration that an exit code with a value greater than 255 returns an exit code modulo 256.
For Example: If we execute a statement exit(9999) then it will execute exit(15) as 9999%256 = 15.
Some of the Exit Codes are:
- exit(1): It indicates abnormal termination of a program perhaps as a result a minor problem in the code.
- exit(2): It is similar to exit(1) but is displayed when the error occurred is a major one. This statement is rarely seen.
- exit(127): It indicates command not found.
- exit(132): It indicates that a program was aborted (received SIGILL), perhaps as a result of illegal instruction or that the binary is probably corrupt.
- exit(133): It indicates that a program was aborted (received SIGTRAP), perhaps as a result of dividing an integer by zero.
- exit(134): It indicates that a program was aborted (received SIGABRT), perhaps as a result of a failed assertion.
- exit(136): It indicates that a program was aborted (received SIGFPE), perhaps as a result of floating point exception or integer overflow.
- exit(137): It indicates that a program took up too much memory.
- exit(138): It indicates that a program was aborted (received SIGBUS), perhaps as a result of unaligned memory access.
- exit(139): It indicates Segmentation Fault which means that the program was trying to access a memory location not allocated to it. This mostly occurs while using pointers or trying to access an out-of-bounds array index.
- exit(158/152): It indicates that a program was aborted (received SIGXCPU), perhaps as a result of CPU time limit exceeded.
- exit(159/153): It indicates that a program was aborted (received SIGXFSZ), perhaps as a result of File size limit exceeded.
Hence the various exit codes help the user to debug the code. For instance, if one receives an exit code of 139, this implies that the code has a segmentation fault and the code can be debugged accordingly.
Below program will give Segmentation Fault:
Below program will give Floating Point Error:
Below program will give Time Limit Exceed: