我知道函数的地址何时传递给atexit
函数,
该功能已被执行。
#include <stdlib.h>
int atexit(void (*func) void));
但是,使用atexit
函数的目的是什么?
口头意义本身“退出”是否与atexit
功能有关?
答案 0 :(得分:2)
atexit
将用于您在应用程序终止时要执行的某些代码,无论它从何处退出。一个例子是应用程序范围的记录器。您可以调用atexit(flush_log)
,因此当应用程序退出时,日志将被刷新,而开发人员不必记住将其刷新。
答案 1 :(得分:0)
是的,atexit
与exit
相关。
exit
可以调用在程序退出之前自动调用的函数。这些函数称为退出处理程序,并通过调用atexit
函数进行注册。
#include<stdio.h>
main(void) {
atexit(func);
}
func(void)
{
...
}
答案 2 :(得分:0)
#include<stdlib.h>
int atexit(void (*func)(void));
上述声明说我们将函数的地址作为参数传递给atexit
。调用此函数时,它不会传递任何参数,也不会返回值。 exit函数按照注册的相反顺序调用这些函数。每个函数在注册时被调用多次。