From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/c/program%2Fatexit.html | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 devdocs/c/program%2Fatexit.html (limited to 'devdocs/c/program%2Fatexit.html') diff --git a/devdocs/c/program%2Fatexit.html b/devdocs/c/program%2Fatexit.html new file mode 100644 index 00000000..c9cebb8e --- /dev/null +++ b/devdocs/c/program%2Fatexit.html @@ -0,0 +1,50 @@ +

atexit

Defined in header <stdlib.h>
int atexit( void (*func)(void) );
+

Registers the function pointed to by func to be called on normal program termination (via exit() or returning from main()). The functions will be called in reverse order they were registered, i.e. the function registered last will be executed first.

+

The same function may be registered more than once.

+

atexit is thread-safe: calling the function from several threads does not induce a data race.

+

The implementation is guaranteed to support the registration of at least 32 functions. The exact limit is implementation-defined.

+

Parameters

+ +
func - pointer to a function to be called on normal program termination

Return value

​0​ if the registration succeeds, nonzero value otherwise.

+

Example

#include <stdlib.h>
+#include <stdio.h>
+ 
+void f1(void)
+{
+    puts("f1");
+}
+ 
+void f2(void)
+{
+    puts("f2");
+}
+ 
+int main(void)
+{
+    if ( ! atexit(f1) && ! atexit(f2) && ! atexit(f2) )
+        return EXIT_SUCCESS ;
+ 
+    // atexit registration failed
+    return EXIT_FAILURE ;
+ 
+}   // <- if registration was successful calls f2, f2, f1

Output:

+
f2
+f2
+f1

References

See also

+ +
+
(C11)
registers a function to be called on quick_exit invocation
(function)
C++ documentation for atexit
+

+ © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
+ https://en.cppreference.com/w/c/program/atexit +

+
-- cgit v1.2.3