abort()和exit()的區別

原文鏈接:https://blog.csdn.net/youshaoduo/article/details/53691054

exit和abort都是用來終止程序的函數,他們的不同如下:

exit會做一些釋放工作:釋放所有的靜態的全局的對象,緩存,關掉所有的I/O通道,然後終止程序。如果有函數通過atexit來註冊,還會調用註冊的函數。不過,如果atexit函數扔出異常的話,就會直接調用結束。

abort:立刻結束程序,沒有任何清理工作。

百度上是這麼解釋abort的:

abort()函數首先解除進程對SIGABRT信號的阻止,然後向調用進程發送該信號。

abort()函數會導致進程的異常終止除非SIGABRT信號被捕捉並且信號處理句柄沒有返回。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章