c / intermediate
Snippet
Automatische Bereinigung mit atexit
Die Funktion atexit registriert einen Callback, der automatisch ausgeführt wird, wenn das Programm normal über return in main oder exit() beendet wird. Dies stellt sicher, dass wichtige Bereinigungslogik ausgeführt wird, ohne sie an jedem Austrittspunkt manuell aufrufen zu müssen.
snippet.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>#include <stdlib.h>void cleanup_handler(void) {printf("Cleaning up global resources...\n");}int main(void) {if (atexit(cleanup_handler) != 0) {fprintf(stderr, "Failed to register cleanup function.\n");return EXIT_FAILURE;}printf("Application logic running...\n");// When main returns, cleanup_handler is called automatically.return EXIT_SUCCESS;}
Erklärung
1
atexit(cleanup_handler)
Registriert den Funktionszeiger, der beim Programmende aufgerufen werden soll.
2
void cleanup_handler(void)
Die registrierte Funktion darf keine Argumente annehmen und muss void zurückgeben.