exit is a jump statement in C/C++ language which takes an integer (zero or non zero) to represent different exit status.
There are two types of exit status in C/C++:
- Exit Success: Exit Success is indicated by exit(0) statement which means successful termination of the program, i.e. program has been executed without any error or interrupt.
Note: Create a file called 'myFile.txt' and run the code in your local device to see the output.C #include <file.h> #include <stdio.h> int main() { FILE* file; // opening the file in read-only mode file = fopen("myFile.txt", "r"); printf("File opening successful!"); // EXIT_SUCCESS exit(0); }
- Exit Failure: Exit Failure is indicated by exit(1) which means the abnormal termination of the program, i.e. some error or interrupt has occurred. We can use different integer other than 1 to indicate different types of errors.
C #include <file.h> #include <stdio.h> int main() { FILE* file; // open the file in read-only mode file = fopen("myFile.txt", "r"); if (file == NULL) { printf("Error in opening file"); // EXIT_FAILURE exit(1); } // EXIT_SUCCESS exit(0); }
Let's see the differences between these two statements-
| exit(0) | exit(1) |
|---|---|
| Reports the successful termination/completion of the program. | Reports the abnormal termination of the program. |
| Reports the termination when the program gets executed without any error. | Reports the termination when some error or interruption occurs during the execution of the program. |
| The syntax is exit(0); | The syntax is exit(1); |
| The usage of exit(0) is fully portable. | The usage of exit(1) is not portable. |
| The macro used for return code 0 is EXIT_SUCCESS | The macro used for return code 1 is EXIT_FAILURE |
| EXIT_SUCCESS is defined by the standard to be zero. | EXIT_FAILURE is not restricted by the standard to be one, but many systems do implement it as one. |