首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >exit()和abort()有什么区别?

exit()和abort()有什么区别?
EN

Stack Overflow用户
提问于 2008-12-29 03:21:37
回答 1查看 74.6K关注 0票数 138

在C和C++中,exit()abort()有什么不同?我试图在出现错误(而不是异常)后结束我的程序。

EN

回答 1

Stack Overflow用户

发布于 2008-12-29 03:29:01

abort发送SIGABRT信号。abort不会返回给调用者。SIGABRT信号的默认处理程序关闭应用程序。刷新stdio文件流,然后将其关闭。然而,C++类实例的析构函数不是这样的(这一点不确定--也许结果是未定义的?)。

通过atexit设置,exit有自己的回调函数。如果指定了回调函数(或者只指定了一个),则以与其注册顺序相反的顺序调用回调函数(如堆栈),然后程序退出。与abort一样,exit不会返回给调用者。刷新stdio文件流,然后将其关闭。此外,还会调用C++类实例的析构函数。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/397075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档