摘要:本文描述的是Linux手册页中on_exit()函数的使用说明,使用on_exit()函数注册终止处理程序.原文来自:http://www.kernel.org/doc/man-pages/.
NAME
on_exit - 用来注册执行exit()函数前执行的终止处理程序.
SYNOPSIS
#include <stdlib.h>
int on_exit(void (*function)(int , void *), void *arg);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
on_exit(): _BSD_SOURCE || _SVID_SOURCE
DESCRIPTION
on_exit()用来注册终止处理程序,当程序通过调用exit()或从main 中返回时被调用, 终止处理程序有两个参数,第一个参数是来自最后一个exit()函数调用中的status,第二个参数是来自on_exit()函数中的arg.
同一个函数若注册多次,那它也会被调用多次.
当一个子进程是通过调用fork()函数产生时,它将继承父进程的所有终止处理程序.在成功调用exec系列函数后,所有的终止处理程序都会被删除.
RETURN VALUE
成功返回0,失败返回非0值.
CONFORMING TO
This function comes from SunOS 4, but is also present in glibc. It no longer occurs in Solaris (SunOS 5). Portable application should avoid this function, and use the standard atexit(3) instead.
END
NAME
on_exit - 用来注册执行exit()函数前执行的终止处理程序.
SYNOPSIS
#include <stdlib.h>
int on_exit(void (*function)(int , void *), void *arg);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
on_exit(): _BSD_SOURCE || _SVID_SOURCE
DESCRIPTION
on_exit()用来注册终止处理程序,当程序通过调用exit()或从main 中返回时被调用, 终止处理程序有两个参数,第一个参数是来自最后一个exit()函数调用中的status,第二个参数是来自on_exit()函数中的arg.
同一个函数若注册多次,那它也会被调用多次.
当一个子进程是通过调用fork()函数产生时,它将继承父进程的所有终止处理程序.在成功调用exec系列函数后,所有的终止处理程序都会被删除.
RETURN VALUE
成功返回0,失败返回非0值.
CONFORMING TO
This function comes from SunOS 4, but is also present in glibc. It no longer occurs in Solaris (SunOS 5). Portable application should avoid this function, and use the standard atexit(3) instead.
END
笔者:个人能力有限,只是学习参考...读者若发现文中错误,敬请提出.
--
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------勿在浮沙筑高台,静下心来,慢慢地沉淀---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------