问题标签 [keyboardinterrupt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 需要帮助在 MS-DOS 中挂钩新的键盘中断
我正在为一个装配班做作业。
我以前设法让我的定时器中断显示并在每个滴答声中更新一个“时钟”。
我正在尝试使用这些知识来替换我的键盘中断。但即使我注释掉新键盘中断处理程序的安装,我的程序也会干扰 MS-DOS 活动(即无法运行任何可执行文件,只能使用 'dir'、'cd' 和类似命令):
由于即使我注释掉了安装也存在问题,我认为问题在于卸载或 old_key 保存。但是我不知道出了什么问题;安装和卸载代码不应该本质上类似于定时器中断的安装/卸载代码吗?
协助将不胜感激,在此先感谢您。
r - 在 R 中使用“sink()”从文件切换到标准输出
我实现了以下过程,旨在写入一些文件并在写入完成后在每个文件的末尾打印一条消息:
我的问题是,如果我不在sink()
循环的最开始添加 a ,则标准输出 ( cat(paste(filename, "done !\n"))
) 上的最终写入将无效。另一方面,提早添加sink()
会产生我想避免的警告:
有没有人知道 sink() 的行为方式和/或如何摆脱这些警告?
注意:我也尝试过try(sink(), silent=TRUE)
,但该silent
选项只能防止错误...
python - 从键盘输入暂停 Python 子进程而不杀死子进程
我正在开发一个在 Python 中生成 shell 的项目,其中一个重要功能是能够暂停和后台运行正在运行的子进程。然而,我发现暂停子进程的唯一方法似乎会立即杀死它,所以我以后无法恢复它。我们小组已经尝试过除了 KeyboardInterrupt:
并使用信号:
另一个问题是,这两个都只有在按下 Ctrl-C 时才起作用,没有其他任何影响(我想这就是子进程被杀死的原因)。
python - 在扭曲的程序中中断 raw_input
所以我正在做的是:
问题是,虽然菜单被通知它必须停止,并且很快就会这样做,但它现在不能这样做,因为它被卡在了raw_input
:
因此,由于 twisted 正在移除默认中断处理程序,raw_input
因此不会停止。我仍然需要按下它才能enter
停止^C
。
如何在不安装默认中断处理程序的情况下强制停止 raw_input,这是扭曲上下文中问题的根源(因为扭曲本身不希望被中断)
我想这个问题不仅仅与raw_input
:任何花费无限时间(或超过预设限制)的函数都应该以某种方式中断。
对此有公认的扭曲模式吗?
编辑
这是完整的测试代码:
我可以以两种不同的方式运行。
正常方式:
按下^C
立即停止程序:
正如预期的那样。
扭曲方式:
压制^C
会产生:
但askUser
实际上并没有被打断:我仍然需要按enter
forraw_input
才能完成。
python - 在程序关闭期间在 Python 中捕获 KeyboardInterrupt
我正在用 Python 编写一个命令行实用程序,因为它是生产代码,所以应该能够干净地关闭而不会将一堆东西(错误代码、堆栈跟踪等)转储到屏幕上。这意味着我需要捕捉键盘中断。
我尝试过使用 try catch 块,例如:
并捕捉信号本身(如本文所述):
这两种方法在正常操作期间似乎都工作得很好。但是,如果在应用程序结束时清理代码期间出现中断,Python 似乎总是在屏幕上打印一些东西。捕捉中断给出
而处理信号会给出
或者
这些错误不仅丑陋,而且帮助不大(尤其是对于没有源代码的最终用户)!
这个应用程序的清理代码相当大,所以这个问题很有可能会被真实用户遇到。有什么方法可以捕获或阻止此输出,还是我必须处理的事情?
error-handling - Common Lisp 键盘中断
是否有在 Common Lisp 中捕获键盘中断的交叉实现(至少 SBCL、CCL、Lispworks 和 CLISP)、跨平台(Linux/Windows/OS X)方式?或者更具体地说,让键盘中断?
我在一个文件中有这个代码片段
其目的是处理错误,但让用户使用键盘中断(在 Linux 上的 SBCL 中表现为simple-error
)来中断程序。但是,这似乎不起作用(CCL
即使主代码没有引发错误,该错误子句似乎也会触发)。
在这种情况下正确的方法是什么?
python - Python Threading - 管理线程终止和主线程
在您继续阅读之前,请知道我是 Python 新手,并且对线程非常陌生,所以如果我误解了线程的工作原理或犯了新手错误,请原谅我:P
我的目标的简短描述:
- 主线程 (a) 做了一些事情(例如打印“开始!”)
- 主线程产生一个新线程 (b),它首先打印“线程 B 已启动”,然后永远打印 x+1 (1, 2, 3 ...)
- 主线程打印“哇!”
- 然后到达主线程的末尾,它自己终止,然后切换到线程 b 使 b 成为主线程
- 程序现在将线程 b 作为主线程运行,所以只是永远打印 x+1 并且 a 已被遗忘且不再相关
- Ctrl+C 将终止线程 b 并有效地终止整个程序,因为线程 a 不再存在
这是我到目前为止所拥有的(基础知识):
要求是:
- 我根本不想在“用户代码”标记下方进行太多修改。我当然不想将它包装在一个类、一个函数或它自己的线程中
- 在任何时候按 Ctrl+C 都应该终止整个程序,并且没有线程在运行(使用类似的东西:在用户代码中很好
except
KeyboardInterrupt: os._exit(1)) - 线程 a可能会继续运行,而不是使线程 b 成为主线程,但在这种情况下,我不希望代码处理 Ctrl+C 终止用户代码部分内的整个程序
这个例子不是我的实际目标,只是我遇到的问题的简化版本。我正在尝试制作一个 IRC 框架,用户可以在其中导入它并非常简单地使用 API,而不会将他们自己的代码与线程和中断等搞乱。这就是为什么用户代码尽可能干净是很重要的。
该框架将允许用户创建一个永久运行的 IRC 机器人,在听命令的同时允许用户添加自己的命令。如果您有兴趣,Github 链接在这里(这是非常 WIP atm)。
python - Python:Tornado ioloop 在 KeyboardInterrupt 上没有异常被杀死
当我在以下程序中^C
阻止龙卷风时按下时,Python 会立即退出,并且不会引发 KeyboardInterrupt(或任何其他异常)。ioloop.start()
发生了什么事,我怎么能抓住^C
?
输出:
预期输出:
我在跑:
- 视窗 8.0 x64,
- Python 2.7.6(默认,2013 年 11 月 10 日,19:24:18)[MSC v.1500 32 位(英特尔)] 在 win32 上
- 龙卷风==3.2
python - 如何忽略模块中的keyboardInterrupt Exception并在winpexpet中进行更高级别的处理?
大家好,我想在win7 x64的python控制台程序中禁用键盘ctrl-c。我的脚本使用winpexect来运行一个运行几个小时的外部程序。我已经试过了
它在我遇到 winpexpect 部分之前工作,如果 winpexpect 产生的进程已经开始,那么我按 ctrl-c 。发生以下错误。
我检查了winpexpect源,它在扫描程序的输出时捕获了这个异常,有没有办法告诉它忽略这个异常并在我的主python脚本中处理它?(必须更改 winpexpect 代码?)
所以换句话说,问题可能是“如何忽略模块中捕获的异常并重新引发它,以便外部代码可以稍后捕获它?”
python - pyzmq Tornado ioloop:如何优雅地处理 KeyboardInterrupt?
我可以在我的 pyzmq 事件循环中捕获一个 KeyboardInterrupt:
但这只会突然停止 ioloop。我想在清理后手动检测 KeyboardInterrupt 并关闭 ioloop。我怎样才能做到这一点?