I know when the address of the function is passed to atexit function,
the function is excuted.
#include
int atexit(void (*fun
#include<stdlib.h>
int atexit(void (*func)(void));
The above declaration says that we pass the address of a function as the argument to atexit. When this function is called, it is not passed any arguments and is not expected to return a value. The exit function called these functions in reverse order of their registration. Each function is called as many times as they registered.
atexit would be used for some code that you want to execute when the application terminates, regardless of where it was exited from. One example would be an application-wide logger. You would call atexit(flush_log), so when the application exits, the log will be flushed, without the developer having to remember to flush it.
Yes, atexit is related to exit.
exit can call functions which are automatically called before a program exits. These functions are called exit handlers and are registered by calling atexit function.
#include<stdio.h>
main(void) {
atexit(func);
}
func(void)
{
...
}