首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >立即退出C++应用程序?

立即退出C++应用程序?
EN

Stack Overflow用户
提问于 2014-07-18 09:09:18
回答 1查看 655关注 0票数 2

在这种情况下,我需要立即退出跨平台的C++应用程序,而不运行析构函数,也不需要造成崩溃。我怎么能这么做?

  • exit(0)运行析构函数;
  • quick_exit(0)没有在VC++中实现;
  • abort()会导致崩溃;
  • _Exit(0)似乎没有在VC++中实现(或者至少没有出现在MSDN中);
  • _exit(0)的文档不清楚它是否调用析构函数--显然,它是在Windows下调用它们的。

我相信我可以在非Windows平台下使用quick_exit,但我缺乏VC++的解决方案。

Clarification (因为人们问我为什么要避免析构函数),这是一个优化场景。我正在处理一个处理内存千兆字节的大型应用程序,该应用程序以复杂的图形分配,具有多个进程、多个线程、线程安全引用计数、看门狗等。内存管理/资源释放机制是为了在运行时使用和/或监视可能出现的错误(取决于构建标志)时保持应用程序响应而优化的,但这些机制在关闭过程中显然是过度消耗的,使CPU在关闭时非常忙碌,耗尽电池等等--在我们确信所有文件描述符/句柄关闭很久之后。这让用户不高兴,所以我正在试验如何改进这一点,最好不必重构所有内容。

调用quick_exit是专门为此类场景设计的,但不受VC++的支持。所以我在寻找平台的替代方案。

EN

回答 1

Stack Overflow用户

发布于 2014-08-01 16:10:12

使用在signal.h中定义的C 信号,它应该在大多数平台上得到支持。

具体而言,您应该使用SIGABRT或kill()调用()。

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

https://stackoverflow.com/questions/24821265

复制
相关文章

相似问题

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