我想问题就是这一切,但是,如果有人关闭c ++控制台应用程序会发生什么?如上所示,单击顶角的"x".它会立即关闭吗?它会引发某种异常吗?是不确定的行为?
CTRL_CLOSE_EVENT
如果使用SetConsoleCtrlHandler函数设置控制处理程序,则关闭顶部角落中带有"x"的c ++控制台应用程序会引发一个可以捕获并处理的应用程序.在那里,您可以覆盖关闭功能并执行您希望执行的任何操作,然后可选地仍然执行默认行为.
我想控制台进程只是被操作系统毫不客气地杀死了.如果你想捕获这个事件并做一些事情,看起来像SetConsoleCtrlHandler函数就是这样做的.
也可以看看:
如何在命令行界面中处理ctrl-break信号
控制台事件处理
在Linux和其他Unix系统上,控制台作为单独的进程运行.当您关闭shell时,它会将SIGHUP信号发送到当前活动的进程或未在后台执行的进程.如果程序员没有处理它,那么该过程就会终止.如果您关闭与终端和活动进程的SSH会话,则会发送相同的信号.
SIGBREAK
是在Windows上引发的.