【发布时间】:2012-01-23 09:51:38
【问题描述】:
有没有办法(暂时)在常规运行的外壳 Haskell 可执行文件中禁用 control-C 的中断效果?
背景:我每年都有一个小练习。这是一个游戏,学生在触发模式匹配重写的表达式周围使用 hncurses 在 shell 窗口中运行。当学生们完成最后一个谜题后,他们会得到一个个人密码,他们需要将其发送给我。作为 Windows 的老手和 Unix 的新手,当然(当然)很懒惰,他们倾向于选择密码并输入 control-C。这具有中断程序并导致他们的密码消失的意外效果。恢复它的唯一方法是重复练习。好残忍!
虽然我可以通过其他方式解决该问题(例如,打印警告消息或将密码写入文件),但我很想知道是否有办法禁用 control-C。
【问题讨论】:
-
我知道这已经过时了几年,但您应该能够在您的程序中执行 Ingo 建议的操作,重新连接用户终端而不是安装信号块。我觉得这是最干净的方法。