【问题标题】:How to catch when user close a console application via “X” button当用户通过“X”按钮关闭控制台应用程序时如何捕捉
【发布时间】:2013-07-04 13:45:56
【问题描述】:

我必须将内存中的数据写入文件以关闭我的控制台应用程序。如何检测控制台关闭事件?

【问题讨论】:

  • 有没有机会得到这个答案?

标签: python python-2.7 windows-7-x64


【解决方案1】:

当终端关闭时,你的程序会得到一个 SIGHUP,它会默认杀死它。添加一个信号处理程序来处理 SIGHUP 做任何你想做的事情。如果你在控制台关闭后编写程序写入控制台,你也可能会得到 SIGPIPE,请妥善处理

【讨论】:

  • 根据documentation,“在Windows上,signal()只能用SIGABRTSIGFPESIGILLSIGINTSIGSEGV或@987654328调用@.ValueError 将在任何其他情况下提出。”这意味着不可能在该平台上为SIGHUP 设置信号处理程序,至少在 Python 中是这样。
  • 事实上,在 Windows 上,signal.SIGHUP 甚至都没有定义。
  • 抱歉没看到是windows
猜你喜欢
  • 1970-01-01
  • 2017-03-25
  • 2011-10-19
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 2016-10-12
相关资源
最近更新 更多