gpt4 book ai didi

c++ - 立即退出 C++ 应用程序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:08 25 4
gpt4 key购买 nike

我发现自己处于需要立即退出跨平台 C++ 应用程序的情况,既不运行析构函数,也不导致崩溃。我该怎么做?

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

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

澄清(因为人们问我为什么要避免析构函数)这是一个优化方案。我正在处理一个大型应用程序,该应用程序操作 GB 的 RAM,分配在复杂的图形中,具有多个进程、多个线程、线程安全引用计数、看门狗等。内存管理/资源释放机制经过优化以保持应用程序响应在运行时使用和/或监视可能的错误(取决于构建标志),但这些机制在关机期间显然是矫枉过正,让 CPU 非常忙碌很多秒,耗尽电池等 - 在我们确定所有文件描述符/句柄已关闭。这让用户不满意,所以我正在尝试如何改进这一点,最好是不必重构所有内容。

调用 quick_exit 是专门为这种情况设计的,但 VC++ 不支持。所以我正在寻找该平台的替代方案。

最佳答案

使用 C signals如 signal.h 中所定义,大多数平台都应支持它。

您特别应该使用 SIGABRT 或 kill() 调用 raise()。

关于c++ - 立即退出 C++ 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com