CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 19 Jul 2025 17:54:16 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/cstdlib/atexit/
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 19 Jul 2025 17:54:16 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"80e0-OCcwvgpNHOIpzE/s3Z8HMH3oTtc"
Content-Encoding: gzip
The function pointed by func is automatically called without arguments when the program terminates normally.
If more than one atexit function has been specified by different calls to this function, they are all executed in reverse order as a stack (i.e. the last function specified is the first to be executed at exit).
A single function can be registered to be executed at exit more than once.
If atexit is called after exit, the call may or may not succeed depending on the particular system and library implementation (unspecified behavior).
If a function registered with atexit throws an exception for which it does not provide a handler when called on termination, terminate is automatically called (C++).
Particular library implementations may impose a limit on the number of functions call that can be registered with atexit, but this cannot be less than 32 function calls.
If it failed, a non-zero value is returned.
Output:
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<cstdlib> (stdlib.h)
functions
-
_ExitC++11
- abort
- abs
-
at_quick_exitC++11
- atexit
- atof
- atoi
- atol
-
atollC++11
- bsearch
- calloc
- div
- exit
- free
- getenv
- labs
- ldiv
-
llabsC++11
-
lldivC++11
- malloc
- mblen
- mbstowcs
- mbtowc
- qsort
-
quick_exitC++11
- rand
- realloc
- srand
- strtod
-
strtofC++11
- strtol
-
strtoldC++11
-
strtollC++11
- strtoul
-
strtoullC++11
- system
- wcstombs
- wctomb
-
functions (non-standard)
types
macro constants
function
<cstdlib>
atexit
int atexit (void (*func)(void));
extern "C" int atexit (void (*func)(void));extern "C++" int atexit (void (*func)(void));
extern "C" int atexit (void (*func)(void)) noexcept;extern "C++" int atexit (void (*func)(void)) noexcept;
Set function to be executed on exit
If more than one atexit function has been specified by different calls to this function, they are all executed in reverse order as a stack (i.e. the last function specified is the first to be executed at exit).
A single function can be registered to be executed at exit more than once.
If atexit is called after exit, the call may or may not succeed depending on the particular system and library implementation (unspecified behavior).
If a function registered with atexit throws an exception for which it does not provide a handler when called on termination, terminate is automatically called (C++).
Particular library implementations may impose a limit on the number of functions call that can be registered with atexit, but this cannot be less than 32 function calls.
Parameters
- function
- Function to be called. The function shall return no value and take no arguments.
Return Value
A zero value is returned if the function was successfully registered.If it failed, a non-zero value is returned.
Example
|
|
Output:
Main function. Exit function 2. Exit function 1. |
Data races
Concurrently calling this function introduces no data races (C++): Calls are properly synchronized at the process level.Exceptions (C++)
No-throw guarantee: this function never throws exceptions.See also
- exit
- Terminate calling process (function)
- abort
- Abort current process (function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us