我知道当函数的地址被传递给atexit函数时,
该函数被执行。
#include <stdlib.h>
int atexit(void (*func) void));然而,使用函数的的目的是什么?
动词意义本身‘退出’与atexit函数有关吗?
发布于 2012-02-17 20:14:51
atexit将用于您希望在应用程序终止时执行的某些代码,而不管它从何处退出。一个例子是应用程序范围内的记录器。您将调用atexit(flush_log),因此当应用程序退出时,日志将被刷新,而开发人员不必记住刷新它。
发布于 2013-06-18 18:22:09
是的,atexit和exit有关。
exit可以调用程序退出前自动调用的函数。这些函数称为退出处理程序,并通过调用atexit函数进行注册。
#include<stdio.h>
main(void) {
atexit(func);
}
func(void)
{
...
}发布于 2016-10-27 21:31:15
#include<stdlib.h>
int atexit(void (*func)(void));上面的声明说,我们将函数的地址作为参数传递给atexit。调用此函数时,不会传递任何参数,也不会期望它返回值。退出函数按其注册的相反顺序调用这些函数。每个函数被调用的次数与它们注册的次数相同。
https://stackoverflow.com/questions/5691429
复制相似问题