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

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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。谢谢。

以上是关于如何将返回码传递给 at_exit 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 7 上为国家/地区名称执行函数返回码?

Jvm(63),虚拟机字节码执行引擎----返回地址和附加信息

java如何返回各种状态码

python如何将ascii码转换为字母

如何获取程序返回值,退出码,错误码

如何将两个变量传递给 python 函数并返回两个变量? [复制]