退出命令示例
Exit command examples
我想在任何时候按下一个键,使模拟停止而不会丢失在那之前收集的数据。我不知道如何执行退出命令。你能给我一些例子吗?
我认为,WandMaker 的评论只说明了故事的一半。
首先,没有一般规则,即 Control-C 会中断您的程序(参见示例 here),但假设这适用于您的情况(因为它在许多情况下都适用) :
如果我理解你写的,你想以某种方式 "process" 到目前为止收集的数据。这意味着您需要拦截 Control-C 的效果(如果它按预期工作,将使控制 shell 传递一个 SIGINT),或者您需要拦截 "exit"(因为收到 SIGINT 后的默认行为是退出程序。
如果要走第一条路,需要捕获Interrupt
异常;例如参见 [=12=].
如果你想走第二条路,你需要安装一个exit handler。注意在程序正常退出的时候也会被调用
如果您不确定哪种方法更好——而且我认为没有通用的方法可以推荐一种优于另一种——请尝试第一种。您不小心毁掉某些东西的可能性较小。
我想在任何时候按下一个键,使模拟停止而不会丢失在那之前收集的数据。我不知道如何执行退出命令。你能给我一些例子吗?
我认为,WandMaker 的评论只说明了故事的一半。
首先,没有一般规则,即 Control-C 会中断您的程序(参见示例 here),但假设这适用于您的情况(因为它在许多情况下都适用) :
如果我理解你写的,你想以某种方式 "process" 到目前为止收集的数据。这意味着您需要拦截 Control-C 的效果(如果它按预期工作,将使控制 shell 传递一个 SIGINT),或者您需要拦截 "exit"(因为收到 SIGINT 后的默认行为是退出程序。
如果要走第一条路,需要捕获Interrupt
异常;例如参见 [=12=].
如果你想走第二条路,你需要安装一个exit handler。注意在程序正常退出的时候也会被调用
如果您不确定哪种方法更好——而且我认为没有通用的方法可以推荐一种优于另一种——请尝试第一种。您不小心毁掉某些东西的可能性较小。