【问题标题】:how to pass return code to an at_exit function如何将返回码传递给 at_exit 函数
【发布时间】:2012-09-13 16:48:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: c linux exit glibc exit-code


    【解决方案1】:

    atexit 没有。但你可以使用on_exit 函数:

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

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

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

    嗯,你必须使用 gnu libc ...

    【讨论】:

    • 是的,我总是忘记写我使用 glibc。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    相关资源
    最近更新 更多