手册页atexit(3)
说明如下:
POSIX.1-2001 表示
exit(3)
多次调用(即exit(3)
在使用 注册的函数内调用atexit()
)的结果是未定义的。在某些系统上(但不是 Linux),这可能导致无限递归;可移植程序不应exit(3)
在使用atexit()
.
但是,我有兴趣在我的程序的终结器中修改退出代码。我设法做到这一点的唯一方法是exit()
从我的终结函数中调用,但手册页明确警告不要这样做。
这样做有什么实际危险吗?是否有任何实现该方法可能会导致问题?更好的是,还有其他方法吗?