私はこの質問にすべてが言いますが、誰かがC++コンソールアプリケーションを閉じるとどうなりますか?のように、上部の角にある「x」をクリックします。それは即座に閉じますか?それは何らかの例外を投げますか?それは未定義の動作ですか?C++コンソールアプリケーションを終了するとどうなるのですか?
答えて
上隅にある「X」でC++コンソールアプリケーションを閉じるには、あなたがSetConsoleCtrlHandler機能を使用してコントロールハンドラを設定した場合、あなたがキャッチして処理できCTRL_CLOSE_EVENT
スローします。ここでは、閉じる機能を無効にして、実行したいことを実行して、オプションで引き続きデフォルトの動作を実行できます。
コンソールの終了を上書きすることはできません。 'TRUE'か' FALSE'を返しても、プロセスは終了します。代わりに返信するか、返品する場合は、クリーンアップを行うには、プロセスが終了する前にデフォルトで5秒間与えられます。手動で 'AllocConsole'や' AttachConsole'を呼び出しても同じですが、ハンドラで 'FreeConsole'を呼び出すのは遅すぎます。コンソールを閉じるユーザーがメインプロセスを終了してはならない場合は、コンソール用に子プロセスを使用し、標準I/Oをパイプに接続する必要があります。 – eryksun
私は、コンソールプロセスがOSによって無意識に殺されたと想像します。このイベントをトラップして何かをしたいのであれば、SetConsoleCtrlHandler機能のように見えます。
も参照してください:
、コンソールが別のプロセスとして実行されます。シェルを閉じると、バックグラウンドで実行されていない現在アクティブなプロセスにSIGHUPシグナルが送信されます。プログラマーがそれを処理しない場合、プロセスは単に終了します。ターミナルとアクティブプロセスでSSHセッションを閉じると、同じシグナルが送信されます。
SIGBREAK
はWindowsで発生します。
- 1. ユーザーがC++コンソールアプリケーションで「終了」を入力すると、アプリはどのように終了しますか?
- 2. .netコンソールアプリケーションの終了を停止する
- 3. データベーストランザクションを終了しないとどうなるのですか?
- 4. .NETコンソールアプリケーション終了イベント
- 5. 単純なコンソールアプリケーションの終了イベントをキャッチ
- 6. Control-CでC#コンソールアプリケーションを中断するとどうなりますか?
- 7. "-999"と入力すると、コンソールアプリケーションを終了することができます
- 8. C#HTMLコンソールアプリケーションを取得する前にjavascriptが終了するのを待つ
- 9. jquery.jmslideshow.js終了するにはどうすれば終了するのですか
- 10. perlスクリプトが終了するとどうなりますか?
- 11. C#コンソールアプリケーションのビルドがWindowsアプリケーションとして終了しないようにしますか?
- 12. コンソールアプリケーションから終了コードを取得する
- 13. C#UnhandledExceptionウィンドウから終了するときにアプリケーションが終了しないようにする
- 14. ServerSocketの終了時にどうなるのですか
- 15. C++プログラムを終了させずにncursesを終了するにはどうしたらいいですか?
- 16. コードカバレッジ:終了マーカーが赤くなるのはなぜですか(終了、終了、など)
- 17. 強制終了アプリなしでAndroidでデーモンスレッドを終了するにはどうすればいいですか?
- 18. VLCJプレーヤーでビデオを終了すると終了しますか?
- 19. C# - Application.Run()を終了する
- 20. C#:プロセスの終了時にプロセスが終了する(タスクマンで)
- 21. C#でプログラムが終了したかどうかを確認する方法
- 22. C++アプリケーションを終了する前にバックグラウンドスレッドを終了させる
- 23. コンソールアプリケーションの終了を防ぐ方法はありますか?
- 24. .NETコンソールアプリケーションからの予期しない終了コード
- 25. Amazon EC2を終了する - 永続データにどうなるのですか
- 26. Qtでは、スレッドが終了するとオブジェクトはどうなりますか?
- 27. マルチスレッドWindowsコンソールアプリケーションを正しく終了する
- 28. スクリプトを終了することなくプロセスをPythonで終了するには?
- 29. プログラムが終了すると `exec`でプロセスを終了する
- 30. Pythonでスクリプトを終了すると、サブプロセスが終了する
どのプラットフォームに興味がありますか? Windows? Linux?それは本当に答えに影響します。 –
「console app」というフレーズを使用すると、文字モードアプリのMS用語のように、ウィンドウが暗示されます。 – AndrewR