atexit(3)
的手册中写到:
POSIX.1-2001 规定,调用
exit(3)
超过一次(即在使用atexit()
注册的函数内部调用exit(3)
)的结果是未定义的。在某些系统上(但不包括 Linux),这可能导致无限递归;可移植的程序不应该在使用atexit()
注册的函数内部调用exit(3)
。
然而,我想要修改我的程序的最终器的退出代码。我唯一成功的方法是从我的最终器函数中调用 exit()
,但手册明确警告不要这样做。
这样做是否存在实际危险?是否有任何实现可能会因此出问题?更好的方法是什么?