我想在任何一点按一个键,导致模拟停止而不会丢失收集到的数据。我不知道怎么做退出命令。你能给我一些例子吗?
答案 0 :(得分:2)
我认为,WandMaker的评论只讲述了故事的一半。
首先,没有一般规则,Control-C会中断你的程序(参见例如here),但是假设这适用于你的情况(因为它在很多情况下会起作用):< / p>
如果我理解你写的,你想以某种方式&#34;处理&#34;到目前为止收集的数据。这意味着您需要拦截Control-C的效果(如果它按预期工作,将使控制shell传递SIGINT),或者您需要拦截&#34;退出&#34; (因为收到SIGINT时的默认行为是退出程序)。
如果你想沿着第一条路走,你需要抓住Interrupt
例外;例如,见here。
如果您想要遵循第二条路线,则需要安装exit handler。请注意,当以正常方式退出程序时也会调用它。
如果你不确定哪种方式更好 - 而且我认为没有一种方法可以推荐另一种方式 - 请尝试第一种方式。你不小心毁掉了什么东西。