的手冊頁atexit(3)
說以下內容:是否可以通過atexit()註冊函數來更改退出代碼?
POSIX.1-2001說,呼籲
exit(3)
不止一次的結果是不確定的(即調用函數中使用exit(3)
註冊atexit()
)。在某些系統(但不是Linux)上,這會導致無限遞歸;便攜式程序不應在使用atexit()
註冊的函數內調用exit(3)
。
但是,我有興趣修改我的程序的終結器退出代碼。我設法做到這一點的唯一方法是在我的定稿函中調用exit()
,但手冊頁明確提出了這個問題。
這樣做有沒有實際的危險?有沒有實現這種方法可能導致問題的實現?更好的是,有沒有另外一種方法呢?