张师睿 2024-06-17 16:16 采纳率: 0%
浏览 4

c++退出时调用函数使用atexit不一定有效

我自己写了一个程序,要在结束时调用几个函数,上网查了说用 atexit 注册退出函数,但我发现直接叉控制台的时候他就不正常了,哪个神犇肯救我。就假设他是下面的代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
void f(){
    system("start cmd");
}
int main(){
    ios::sync_with_stdio(0);
    atexit(f);
    while(1){}
}
  • 写回答

3条回答 默认 最新

  • 赵4老师 2024-06-18 16:22
    关注

    console屏幕处理例子程序
    https://download.csdn.net/download/zhao4zhong1/3461309
    仅供参考:

    BOOL WINAPI handler_routine(DWORD dwCtrlType)
    {
      CHAR szTemp[64];
    
      /* print out what control event was received to the current console */
      switch(dwCtrlType)
        {
        case CTRL_C_EVENT:
          strcpy(szTemp, "CTRL_C_EVENT");
          break;
        case CTRL_BREAK_EVENT:
          strcpy(szTemp, "CTRL_BREAK_EVENT");
          break;
        case CTRL_CLOSE_EVENT:
          strcpy(szTemp, "CTRL_CLOSE_EVENT");
          break;
        case CTRL_LOGOFF_EVENT:
          strcpy(szTemp, "CTRL_LOGOFF_EVENT");
          break;
        case CTRL_SHUTDOWN_EVENT:
          strcpy(szTemp, "CTRL_SHUTDOWN_EVENT");
          break;
        default:
          strcpy(szTemp, "unknown event");
          break;
        }
      strcat(szTemp, " detected");
      myPuts(hConsole, szTemp);
      return(TRUE);
    }
    
    BOOL bSuccess = SetConsoleCtrlHandler(handler_routine, TRUE);
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月17日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表