如何将返回码传递给 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 上为国家/地区名称执行函数返回码?