##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::_Exit

From cppreference.com
< cpp‎ | utility‎ | program

Defined in header `<cstdlib>` |  |
[[noreturn]] void _Exit( int exit_code ); |  | (since C++11)

Causes normal program termination to occur without completely cleaning the resources.

Destructors of variables with automatic, thread local and static storage durations are not called. Functions passed to std::at_quick_exit() or std::atexit() are not called. Whether open resources such as files are closed is implementation defined.

If `exit_code` is 0 or EXIT_SUCCESS, an implementation-defined status indicating successful termination is returned to the host environment. If `exit_code` is EXIT_FAILURE, an implementation-defined status, indicating unsuccessful termination, is returned. In other cases implementation-defined status value is returned.

### [edit] Parameters

exit_code | - | exit status of the program

### [edit] Return value

(none)

### [edit] Exceptions

`noexcept` specification:
noexcept

### [edit] Example

Run this code

    #include <iostream>

    class Static {
    public:
        ~Static()
        {
            std::cout << "Static dtor\n";
        }
    };

    class Local {
    public:
        ~Local()
        {
            std::cout << "Local dtor\n";
        }
    };

    Static static_variable; // dtor of this object will *not* be called

    void atexit_handler()
    {
        std::cout << "atexit handler\n";
    }

    int main()
    {
        Local local_variable; // dtor of this object will *not* be called

        // handler will *not* be called
        const int result = std::atexit(atexit_handler);

        if (result != 0) {
            std::cerr << "atexit registration failed\n";
            return EXIT_FAILURE;
        }

        std::cout << "test" << std::endl; // flush from std::endl
            // needs to be here, otherwise nothing will be printed
        std::_Exit(EXIT_FAILURE);
    }

Output:

    test

### [edit] See also

abort | causes abnormal program termination (without cleaning up) (function) [edit]
exit | causes normal program termination with cleaning up (function) [edit]
C documentation for _Exit

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/utility/program/_Exit&oldid=91635"
Category:

- unconditionally noexcept

Hidden categories:

- Pages with unreviewed unconditional noexcept template
- Pages with unreviewed noexcept template