是否有一种“内置”方式来了解在安装了exit
的退出处理程序中传递给atexit
的退出代码?
例如,如果调用exit(EXIT_FAILURE)
,我的处理程序将执行与exit(EXIT_SUCCESS)
情况不同的操作。
我可以使用全局变量来解决这个问题,但无论我的程序在哪里,都会无法调用exit
。
答案 0 :(得分:3)
atexit
没有。但您可以使用on_exit
功能:
Function:int on_exit(void(* function)(int status,void * arg),void * arg)
此功能是atexit的一个更强大的变体。它接受两个 参数,函数函数和任意指针 ARG。在正常的程序终止时,该函数被调用两个 arguments:传递给exit的状态值,以及arg。
此功能仅包含在GNU C库中以实现兼容性 对于SunOS,可能不受其他实现的支持。
好吧,你必须使用gnu libc ...