質問がすべてを物語っていると思いますが、誰かがc ++コンソールアプリを閉じるとどうなりますか?のように、上隅の「x」をクリックします。すぐに閉じますか?ある種の例外をスローしますか?未定義動作ですか?
rlbond
質問する
18531 次
4 に答える
21
上隅に「x」が付いたc++コンソールアプリを閉じると、 SetConsoleCtrlHandler関数CTRL_CLOSE_EVENT
を使用してコントロールハンドラーを設定した場合にキャッチして処理できるがスローされます。そこでは、閉じる機能をオーバーライドして、やりたいことを何でも実行し、オプションでデフォルトの動作を実行することができます。
于 2009-03-30T06:11:40.987 に答える
9
私は、コンソールプロセスがOSによって不用意に殺されてしまうことを想像しています。このイベントをトラップして何かを実行したい場合は、SetConsoleCtrlHandler関数がその方法のように見えます。
参照:
于 2009-03-30T06:08:04.097 に答える
9
Linuxおよびその他のUnixシステムでは、コンソールは別のプロセスとして実行されます。シェルを閉じると、現在アクティブな1つまたは複数のバックグラウンドで実行されていないプロセスにSIGHUP信号が送信されます。プログラマーがそれを処理しない場合、プロセスは単に終了します。端末とアクティブなプロセスとのSSHセッションを閉じると、同じシグナルが送信されます。
于 2009-03-30T06:09:00.180 に答える
8
SIGBREAK
Windowsで発生します。
于 2014-12-15T13:12:44.983 に答える