linux - 使用 getchar() 在原始模式下捕获 Ctrl-Enter?
问题描述
在将终端设置为原始模式后,使用 getchar() 处理击键时,有什么方法可以捕获组合键 Ctrl-Enter 吗?
测试它时,我只得到 char 值 10,无论是否按住 Ctrl,它都是相同的。
解决方案
在进行了更多实验之后,似乎大多数终端不会为 Ctrl-Enter 发送唯一的键符。通过使用 getchar 循环,您可以查看任何终端按键的完整键符代码:
// set terminal to raw, then...
while( int c = getchar() ) printf( "%d ", c );
某些键(如 F1 和 Ctrl-K)会生成代码,但其他组合键不会。不幸的是,Ctrl-Enter 不是可编码的组合键。当然,使用具有 root 访问权限的信号可以从本地控制台检测到,但不能从终端检测到。
推荐阅读
- floating-point - Find Absolute in AVX
- linux - 在 Bash 脚本中操作假脱机命令输出
- php - 如果数组为空,则使用 foreach 进行单个循环
- angular - RxJS:获得多个响应
- docker - 运行 JHipster 的 Docker 拒绝连接到 Postgree SQL DB?
- snowflake-cloud-data-platform - 我们可以将列表或数组作为参数传递给雪花中的 JavaScript 过程吗?
- tkinter - 如何在窗口上显示文本
- vba - SignNow API 与 Ms Access VBA 的集成
- c# - 如何将 MessageEnvelope xmlns 转换为 json
- android - 适用于 Unity 的 Google In-App Review 未显示,未引发错误