如何将返回代码传递给at_exit函数

时间:2012-09-13 16:48:19

标签: c linux exit glibc exit-code

是否有一种“内置”方式来了解在安装了exit的退出处理程序中传递给atexit的退出代码?

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

我可以使用全局变量来解决这个问题,但无论我的程序在哪里,都会无法调用exit

1 个答案:

答案 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 ...