C如何捕获关闭终端

时间:2011-06-01 21:33:38

标签: c terminal capture signals

有关如何捕获关闭程序运行的终端窗口的任何想法? 虽然我正在使用它,但是当计算机关闭但程序仍在运行时,或者用户注销时,是否有任何捕获方式?

4 个答案:

答案 0 :(得分:2)

尝试捕获SIGTERM。请注意,您无法捕获SIGKILL,这可能是在一段时间后关闭期间发生的情况。我发现这个really nice post也解释了一些差异。

[更新] Longshot在这里,但测试std-in / out是否仍然开放且好?当终端死亡时,应该废弃那些文件描述符。免责声明,这是最好的猜测。

答案 1 :(得分:2)

如果在Unix / Linux上:您是否看过SIGTERM?这至少是在关机期间发送给您的那个。

答案 2 :(得分:2)

你可以试试atexit()函数吗?(见评论)

或者在这里查看这篇文章:Signals received by bash when terminal is closed

答案 3 :(得分:1)

从我的测试中......关闭终端时我的程序收到的信号是1或SIGHUP