Nov 05, 2017 For the Love of Physics - Walter Lewin - May 16, 2011 - Duration: 1:01:26. Lectures by Walter Lewin. They will make you ♥ Physics. Recommended for you. The C library function void exit(int status) terminates the calling process immediately. Any open file descriptors belonging to the process are closed and any children of the process are inherited by process 1, init, and the process parent is sent a SIGCHLD signal. If status is EXITFAILURE, an unsuccessful termination status is returned to the host environment. Otherwise, the status returned depends on the system and library implementation. For a similar function that does not perform the cleanup described above, see quickexit. Parameters status Status code. If this is 0 or EXITSUCCESS, it indicates. Cprogramming.com is a web site devoted to the C programming language. It has general, and graphics, programming tutorials, source code, selected links, and an active programming message board. Exit - C Function Reference - Cprogramming.com.
| Language | ||||
| Standard Library Headers | ||||
| Freestanding and hosted implementations | ||||
| Named requirements | ||||
| Language support library | ||||
| Concepts library(C++20) | ||||
| Diagnostics library | ||||
| Utilities library | ||||
| Strings library | ||||
| Containers library | ||||
| Iterators library | ||||
| Ranges library(C++20) | ||||
| Algorithms library | ||||
| Numerics library | ||||
| Input/output library | ||||
| Localizations library | ||||
| Regular expressions library(C++11) | ||||
| Atomic operations library(C++11) | ||||
| Thread support library(C++11) | ||||
| Filesystem library(C++17) | ||||
| Technical Specifications |
| Type support (basic types, RTTI, type traits) | |||||||||||||||
| Dynamic memory management | |||||||||||||||
| Error handling | |||||||||||||||
| Program utilities | |||||||||||||||
| Variadic functions | |||||||||||||||
| Library feature-test macros | |||||||||||||||
| Date and time | |||||||||||||||
| Function objects | |||||||||||||||
| Formatting library(C++20) | |||||||||||||||
(C++11) | |||||||||||||||
(C++20) | |||||||||||||||
(C++11) | |||||||||||||||
(C++14) | |||||||||||||||
| Relational operators (deprecated in C++20) | |||||||||||||||
| Comparisons (C++20) | |||||||||||||||
| Integer comparison functions | |||||||||||||||
(C++20) | |||||||||||||||
| Common vocabulary types | |||||||||||||||
| |||||||||||||||
| Swap, forward and move | |||||||||||||||
(C++14) | |||||||||||||||
(C++11) | |||||||||||||||
(C++11) | |||||||||||||||
(C++11) | |||||||||||||||
| Elementary string conversions | |||||||||||||||
(C++17) | |||||||||||||||
(C++17) | |||||||||||||||
(C++17) | |||||||||||||||
| Type operations | |||||||||||||||
(C++11) | |||||||||||||||
(C++17) | |||||||||||||||
(C++17) | |||||||||||||||
| Program termination | |||||
| |||||
| Communicating with the environment | |||||
| Signals | |||||
| Signal types | |||||
| Non-local jumps | |||||
| Types | |||||
Defined in header <cstdlib> | |
| (until C++11) | |
[[noreturn]]void exit(int exit_code ); | (since C++11) |
Causes normal program termination to occur.
Several cleanup steps are performed:
1) destructors of objects with static storage duration are called in reverse order of completion of their constructors or the completion of their dynamic initialization, and the functions passed to std::atexit are called in reverse order they are registered (last one first). a) any static objects whose initialization was completed before the call to std::atexit for some function F will be destroyed after the call to F during program termination. b) any static objects whose construction began after the call to std::atexit for some function F will be destroyed before the call to F during program termination (this includes the case where std::atexit was called from the constructor of the static object) | (until C++11) |
1) The destructors of objects with thread local storage duration that are associated with the current thread, the destructors of objects with static storage duration, and the functions registered with std::atexit are executed concurrently, while maintaining the following guarantees: a) The last destructor for thread-local objects is sequenced-before the first destructor for a static object b) If the completion of the constructor or dynamic initialization for thread-local or static object A was sequenced-before thread-local or static object B, the completion of the destruction of B is sequenced-before the start of the destruction of A c) If the completion of the initialization of a static object A was sequenced-before the call to std::atexit for some function F, the call to F during termination is sequenced-before the start of the destruction of A d) If the call to std::atexit for some function F was sequenced-before the completion of initialization of a static object A, the start of the destruction of A is sequenced-before the call to F during termination. e) If a call to std::atexit for some function F1 was sequenced-before the call to std::atexit for some function F2, then the call to F2 during termination is sequenced-before the call to F1 | (since C++11) |
atexit or any destructor of static/thread-local object throws an exception, std::terminate is calledexit_code is 0 or EXIT_SUCCESS, an implementation-defined status indicating successful termination is returned. If exit_code is EXIT_FAILURE, an implementation-defined status indicating unsuccessful termination is returned. In other cases implementation-defined status value is returned.Stack is not unwound: destructors of variables with automatic storage duration are not called.
Returning from the main function, either by a return statement or by reaching the end of the function performs the normal function termination (calls the destructors of the variables with automatic storage durations) and then executes std::exit, passing the argument of the return statement (or 0 if implicit return was used) as exit_code.
| exit_code | - | exit status of the program |
(none)
Output: 3utools old version.
| causes abnormal program termination (without cleaning up) (function)[edit] | |
| registers a function to be called on std::exit() invocation (function)[edit] | |
(C++11) | causes quick program termination without completely cleaning up (function)[edit] |
(C++11) | registers a function to be called on quick_exit invocation (function)[edit] |