问题标签 [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.

0 投票
1 回答
762 浏览

c - 在 c 内核保护模式下不获取键盘输入

我正在按照James Molloy 的教程制作 C 和 32 位汇编操作系统,直到 IRQ 和 PIT 步骤,我正在尝试获取键盘输入,我尝试将此代码添加到教程的代码中,但我无法正确处理。

键盘.c:

main.c:内核

所有其他文件都相同。它运行正常,但不打印输出,我不知道为什么:(我正在使用 qemu 运行它。

它打印 hello world 但不打印击键

0 投票
1 回答
214 浏览

sockets - 处理键盘中断

我在SML/NJREPL 中运行了一个最小的 TCP 服务器,我想知道如何在键盘中断时优雅地关闭侦听器套接字。服务器的精简版是

问题是如果我在一个端口上启动这个服务器,用键盘中断取消,然后尝试在同一个端口上重新启动,我得到一个错误。

所以我希望能够在发生一些错误时关闭监听套接字。Interrupt当我发出键盘中断时,我在 REPL 中看到,所以我假设这Interrupt是我希望捕获的异常的构造函数。但是,将适当的handle行添加到其中一个acceptLoopserve似乎没有做我想要的。

(然后在 REPL 中)

对变量 ( handle x => (Socket.close s; raise x)) 或通配符 ( handle _ => Socket.close s) 异常匹配执行相同操作具有与上述相同的效果。

0 投票
6 回答
6481 浏览

python - 循环中超时的用户输入

我正在尝试创建一个循环 python 函数,该函数执行任务并提示用户响应,如果用户在给定时间内没有响应,则序列将重复。

这大致基于这个问题:How to set time limit on raw_input

任务由 表示some_function()。超时是以秒为单位的变量。以下代码有两个问题:

  1. 无论用户是否提示,raw_input 提示在指定的 4 秒时间后都不会超时。

  2. 当输入 'q' 的 raw_input 时(没有 '' 因为我知道输入的任何内容都会自动输入为字符串),该函数不会退出循环。

`

`

0 投票
1 回答
2578 浏览

python - 在 PyDev 控制台中停止正在运行的命令

我使用 PyDev 控制台运行长脚本,并且经常希望在命令中间停下来。在常规的 python shell 中,我按 ctrl+c 并通过键盘中断停止命令。但在 PyDev 控制台中,它会进行文本复制。

如何在此控制台中停止命令而不终止它?

0 投票
2 回答
304 浏览

python - 是否可以在类中创建装饰器?

或者,也许您可​​以想到我正在尝试做的替代解决方案。基本上,我有一个包含一堆函数的类,我想将它们包装在 try/except 块中以拦截KeyboardInterrupt错误,因为我有一个函数可以整齐地清理我的每个函数。

我想我可以创建一个装饰器来做到这一点,而不是在每个函数中放置巨大的 try catch 块,但我遇到了一些问题。到目前为止,我有这样的事情

我运行它时的问题是我收到错误

这甚至可能吗?有没有更好的方法或者我真的应该在每个函数内部放置 try/except 块?

0 投票
0 回答
999 浏览

python - Python sys.exit() 在 Windows 7 命令提示符下不起作用

所以我有一个 python 脚本,如你所料,我在命令提示符下运行

在我的脚本中,我有一行拦截 Ctrl+C 并假设整理一些东西并关闭脚本。

但它似乎并没有真正退出程序。它打印消息,所以我知道它收到了那个中断信号,但是我在命令提示符下没有控制权,当我在任务管理器中查看时,我看到它的 python 进程仍在运行。我只有在结束该过程后才能重新获得控制权。事实上,即使程序在没有被中断的情况下正常运行完成,该过程仍然存在。

我的程序确实产生了子线程,这就是为什么我使用sys.exit()而不是我听说不能例外的其他方法并做更多的突然结束。

难道我做错了什么?是否有这样做的跨平台方法(这就是我认为的 sys.exit() 是)?

编辑:所以我已经隔离了这个问题。我创建了一个小测试脚本,似乎当我创建一个线程时它不会死,因此程序永远不会退出。我更改了初始代码以显示设置。

0 投票
1 回答
1222 浏览

assembly - BIOS 和 DOS 中断(16H 和 21H)

有一些例程可以通过两者来实现INT 21HINT 16H前者用于 DOS,后者用于 BIOS)。但是,确切的区别尚不清楚(至少对我而言!)。

例如,以下例程从键盘读取字符

1) INT 21H, service 01 用 echo 读取

2) INT 16H, service 01 for key press

假设一个程序正在等待一个键。例如,一个等待 Y/N 的简单的基于文本的向导。为了回显按下的键,首选哪一个?21H 或 16H。

我认为应该在没有操作系统时调用 BIOS 例程(例如在 POST 期间“按 F1 继续”)。这就是全部?是否有任何示例表明操作仅由其中一个而不是两者都完成?

0 投票
1 回答
721 浏览

c - 如何在内联汇编中使用在 C 中声明的变量

我试图弄清楚如何在下面的内联汇编代码中使用变量 ret,但我不断收到此错误:未定义对 'ret 的引用。

0 投票
1 回答
1054 浏览

python - python multiprocess.Pool 不能处理 KeyboardInterrupt 对吗?

我想在按下时终止我的程序Ctrl-C,代码如下:

但这不能正常工作

0 投票
0 回答
49 浏览

python - Python 3.4.3 KeyboardInterrupt 工作但不在其块内运行代码

我正在做一些 Python 教程,以尝试尽可能多地学习该语言,但我在异常处理方面遇到了一些问题。我在 Windows 10 中使用 cmd 运行代码Python 3.4.3。具体来说,KeyboardInterrupt当按下 Ctrl + C 时,该块根本不打印任何内容。虽然这不一定很重要,但我正在考虑可能需要执行其他操作的时候,KeyboardInterrupt例如写入文件。

在第一次用户输入期间按 Ctrl + C 时,不是打印出消息“Interrupted”,而是输出如下所示: Please enter a Length : Traceback (most recent call last):

我在 Windows 10 中,在 cmd 中运行代码。有任何想法吗?