【发布时间】:2013-02-14 22:28:40
【问题描述】:
我正在尝试在 linux 中实现一个简单的 shell,它应该具有的功能之一是让用户能够按下 <ctrl+D> 并让它停止它正在做的任何事情 - 基本上正是 <ctrl+C> 在 Bash 中所做的。
现在我想知道最简单的方法来做到这一点,并且我正在考虑某种可以使当前任务停止的关键侦听器。现在我能想到的唯一方法是拥有一个单独的线程,该线程将强制停止并将主线程返回到基本状态,在那里它可以接受新的输入。
单独的线程将是“不断”侦听正确按键的唯一方法。
我希望对此有一些想法,并可能有更好的解决方法。
[编辑] 我正在尝试制作一个简单的 shell,它可以执行外部程序、打印/更改目录、打印/设置路径、打印命令历史记录、从历史记录调用命令和打印/设置/删除命令别名。 CTRL-D 相当于 Bash 中的 CTRL-C,它允许用户立即退出当前正在运行的程序,而不是退出 shell 本身。 [/编辑]
【问题讨论】:
-
对我来说,这似乎是一个非常合理、真实、建设性的问题。建议/期望的键盘映射是不寻常的,但这并没有错;它只是不同。您可能会问“您尝试过什么”,但这个问题基本上是合理的。