Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at exit, _Exit, _exit.
Terminates the calling process. The exit function terminates it after cleanup; _exit and _Exit terminate it immediately.
Note
Do not use this method to shut down a Universal Windows Platform (UWP) app or a Windows 8.x Store app, except in testing or debugging scenarios. Programmatic or UI ways to close a Windows 8.x Store app are not permitted. For more information about Windows 8 and 8.1 apps, see App lifecycle. For more information about Windows 10 apps, see How-to guides for Windows 10 apps.
Syntax
void exit(
int const status
);
void _Exit(
int const status
);
void _exit(
int const status
);
Parameters
status
Exit status code.
Remarks
The exit, _Exit and _exit functions terminate the calling process. The exit function calls destructors for thread-local objects, then calls—in last-in-first-out (LIFO) order—the functions that are registered by atexit and _onexit, and then flushes all file buffers before it terminates the process. The _Exit and _exit functions terminate the process without destroying thread-local objects or processing atexit or _onexit functions, and without flushing stream buffers.
Although the exit, _Exit and _exit calls do not return a value, the low-order byte of status is made available to the host environment or waiting calling process, if one exists, after the process exits. Typically, the caller sets the status value to 0 to indicate a normal exit, or to some other value to indicate an error. The status value is available to the operating-system batch command ERRORLEVEL and is represented by one of two constants: EXIT_SUCCESS, which represents a value of 0, or EXIT_FAILURE, which represents a value of 1.
The exit, _Exit, _exit, quick_exit, _cexit, and _c_exit functions behave as follows.
| Function | Description |
|---|---|
exit |
Performs complete C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
_Exit |
Performs minimal C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
_exit |
Performs minimal C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
quick_exit |
Performs quick C library termination procedures, terminates the process, and provides the supplied status code to the host environment. |
_cexit |
Performs complete C library termination procedures and returns to the caller. Does not terminate the process. |
_c_exit |
Performs minimal C library termination procedures and returns to the caller. Does not terminate the process. |
When you call the exit, _Exit or _exit function, the destructors for any temporary or automatic objects that exist at the time of the call are not called. An automatic object is defined in a function where the object is not declared to be static. A temporary object is an object that's created by the compiler. To destroy an automatic object before you call exit, _Exit, or _exit, explicitly call the destructor for the object, as follows:
myObject.myClass::~myClass();
Do not use DLL_PROCESS_ATTACH to call exit from DllMain. If you want to exit the DLLMain function, return FALSE from DLL_PROCESS_ATTACH.
Requirements
| Function | Required header |
|---|---|
exit, _Exit, _exit |
<process.h> or <stdlib.h> |
For additional compatibility information, see Compatibility.
Example
// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.
#include <stdlib.h>
int main( void )
{
exit( 1 );
}
.NET Framework Equivalent
System::Diagnostics::Process::Kill
See Also
Process and Environment Control
abort
atexit
_cexit, _c_exit
_exec, _wexec Functions
_onexit, _onexit_m
quick_exit
_spawn, _wspawn Functions
system, _wsystem