【问题标题】:Capture Ctrl+C (SIGINT) when terminal is in raw mode?当终端处于原始模式时捕获 Ctrl+C (SIGINT)?
【发布时间】:2017-05-01 07:59:35
【问题描述】:

所以,假设我在应用程序中启用了原始模式。 应用程序可能会也可能不会接受输入。

捕获 Ctrl+C (SIGINT) 的最佳做法是什么?请记住,它并不总是采用输入,因此整个事情都变得很小更难。

我的想法是我总是在后台接受输入,并使用它来查看是否有人按下了 Ctrl+C,并丢弃所有输入,除非,嗯,Ctrl+C,或者我确实对输入进行了某些操作。
缺陷 这个想法是我相信您可以将 SIGINT 重新绑定到其他键。此外,始终接受输入可能不是最佳做法,实施起来也不会完全轻松。

我会完全放弃原始模式吗?我只在需要时启用它吗? (A.K.A. 每次我想要一个字符?)

【问题讨论】:

  • 这就是 cbreak 模式的用途。

标签: terminal signals sigint


【解决方案1】:

监听字符代码 3,在原始模式下按 ctrl-c 时发送。

【讨论】:

  • 这就是我所说的My idea is that I always take input in the background, and use that to see if somebody presses Ctrl+C, and discarding all input unless, well, Ctrl+C, or that I do actually do something with the input.。虽然我最终通过将它与Do I only enable it when I need it? (A.K.A. every time I want a single char?) 结合起来解决了它
猜你喜欢
  • 2011-11-22
  • 1970-01-01
  • 2013-05-25
  • 2012-05-08
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 2013-08-30
相关资源
最近更新 更多