2

是否有一种“内置”方法可以知道传递给exit安装的退出处理程序内部的退出代码atexit

例如,如果调用exit(EXIT_FAILURE),我的处理程序将执行与调用不同的操作exit(EXIT_SUCCESS)

我可以用一个全局变量来解决这个问题,但这会否定exit在我的程序中无论在哪里调用的舒适性。

4

1 回答 1

3

atexit没有。但是您可以使用以下on_exit功能:

函数:int on_exit (void (*function)(int status, void *arg), void *arg)

这个函数是atexit 的一个更强大的变体。它接受两个参数,一个函数函数和一个任意指针 arg。在正常程序终止时,使用两个参数调用该函数:传递给 exit 的状态值和 arg。

此函数包含在 GNU C 库中只是为了与 SunOS 兼容,其他实现可能不支持。

好吧,你必须使用 gnu libc ...

于 2012-09-13T16:53:52.287 回答