exit(0) vs exit(1) in C/C++ with Examples

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++:

  1. 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.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

    Note: Create a file called ‘myFile.txt’ and run the code in your local device to see the output.



  2. 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.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

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.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.