What happens when you close a c++ console application

前端 未结 4 589
南笙
南笙 2020-11-28 12:00

I guess the question says it all, but, what happens if someone closes a c++ console app? As in, clicks the \"x\" in the top corner. Does it instantly close? Does it throw so

相关标签:
4条回答
  • 2020-11-28 12:33

    I imagine that the console process just gets unceremoniously killed by the OS. If you want to trap this event and do something it looks like the SetConsoleCtrlHandler function is the way to do it.

    See also:

    • How to handle a ctrl-break signal in a command line interface
    • Console Event Handling
    0 讨论(0)
  • 2020-11-28 12:35

    On Linux and other Unix systems, the console runs as a separate process. As you close the shell, it sends the SIGHUP signal to the currently active process or processes that are not executed in the background. If the programmer does not handle it, the process simply terminates. The same signal is sent if you close the SSH session with a terminal and an active process.

    0 讨论(0)
  • 2020-11-28 12:45

    Closing a c++ console app with the "x" in the top corner throws an CTRL_CLOSE_EVENT which you could catch and process if you set a control handler using the SetConsoleCtrlHandler function. In there you could override the close functionality and perform whatever you wished to do, and then optionally still perform the default behavior.

    0 讨论(0)
  • 2020-11-28 12:45

    SIGBREAK is raised on Windows.

    0 讨论(0)
提交回复
热议问题