遵循规范

此功能来自SunOS 4,但在glibc中也存在。它不再在Solaris(SunOS 5)中出现。可移植应用程序应避免使用此功能,而应使用标准atexit(3)。

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
on_exit()Thread safetyMT-Safe

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

说明

on_exit()函数注册要在正常进程终止时调用的给定函数,无论是通过exit(3)还是通过程序main()的返回。该函数被传递给最后一次调用exit(3)的状态参数和on_exit()的arg参数。

相同的功能可能会多次注册:每次注册都会调用一次。

通过fork(2)创建子进程时,它将继承其父级注册的副本。成功调用exec(3)函数之一后,将删除所有注册。

语法

#include <stdlib.h>

int on_exit(void (*function)(int , void *), void *arg);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

on_exit():
从glibc 2.19开始:
_DEFAULT_SOURCE
Glibc 2.19及更早版本:
_BSD_SOURCE _SVID_SOURCE

备注

在执行时间函数时,堆栈(自动)变量可能已经超出范围。因此,arg不应是指向堆栈变量的指针。但是,它可能是指向堆变量或全局变量的指针。

返回值

如果成功,on_exit()函数将返回值0;否则,返回0。否则返回非零值。

另外参见

_exit(2),atexit(3),exit(3)

ON_EXIT - Linux手册页

Linux程序员手册 第3部分
更新日期: 2019-08-02

名称

on_exit-注册一个在正常进程终止时要调用的函数

日期:2019-08-20 18:00:57 来源:oir作者:oir