closuresc ++控制台应用程序时会发生什么?
我想这个问题说了这一切,但是,如果有人closures一个c + +控制台应用程序会发生什么? 如在,点击顶部的“X”。 它是否立即closures? 它会抛出某种exception吗? 它是不确定的行为?
使用顶部的“x”closuresc ++控制台应用程序会引发一个CTRL_CLOSE_EVENT
,如果您使用SetConsoleCtrlHandler函数设置控件处理程序,则可以捕获并处理它。 在那里,你可以重写closuresfunction,并执行你想要做的任何事情,然后可选地仍然执行默认行为。
我想象一下,控制台进程被操作系统毫不客气地杀死。 如果你想要捕获这个事件并做一些事情,像SetConsoleCtrlHandler函数是这样做的。
也可以看看:
- 如何在命令行界面中处理ctrl-break信号
- 控制台事件处理
在Linux和其他Unix系统上,控制台作为一个单独的进程运行。 在closuresshell时,它会将SIGHUP信号发送到当前活动的一个或多个在后台不执行的进程。 如果程序员不处理它,这个过程就会终止。 如果用terminal和活动进程closuresSSH会话,则会发送相同的信号。
SIGBREAK
在Windows上引发。