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