某些控制序列在Linux中具有特殊效果,例如CTRL-C
发送SIGINT
。我可以轻松地处理信号,但CTRL-S
(XOFF)和CTRL-Q
(XON)似乎是特殊的雪花。我知道可以使用stty -ixon
在控制台中禁用它们(暂停输入)的效果,并且我可以使用一些技巧来运行该命令,但这感觉很便宜。
是否有适当的方法使用系统调用消除这些序列的特殊效果并获得其实际ASCII值(^S
,^Q
)?我知道它是可行的,因为文本编辑器Nano做到了,但是对于我一生来说,我找不到它的处理位置。我已经尝试过在仓库中搜索“XOFF”。
https://github.com/dtrebbien/nano/tree/master/src
最佳答案
如本手册页中所述,使用tcgetattr() and tcsetattr() system calls关闭标准输入上的IXON
标志。