linux - 使用 getchar() 在原始模式下捕获 Ctrl-Enter?

标签 linux terminal io

在将终端设置为原始模式后使用 getchar() 处理击键时,有什么方法可以捕获组合键 Ctrl-Enter 吗?

测试时,我得到的字符值是 10,无论是否按住 Ctrl 都是一样的。

最佳答案

在做了更多实验之后,似乎大多数终端不会为 Ctrl-Enter 发送唯一的键符。通过使用 getchar 循环,您可以看到任何终端按键的完整键符代码:

// set terminal to raw, then...
while( int c = getchar() ) printf( "%d ", c );

某些键如 F1 和 Ctrl-K 会生成代码,但其他组合键不会。不幸的是,Ctrl-Enter 不是可编码的组合键。当然,使用具有根访问权限的信号可以从本地控制台检测到它,但不能从终端检测到。

关于linux - 使用 getchar() 在原始模式下捕获 Ctrl-Enter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55821314/

相关文章:

linux - Linux 中的 mlock 堆栈

php - 如果我从 MAMP 安装 mysql,如何运行它

windows - 在 Cygwin 上找不到 sudo 命令

python - 从非常规文本文件中提取信息? (Python)

c# - 如何多次写入一个文件

linux - 使用 Qt 在 Linux 中触摸事件

c - 从文件的 inode 号获取文件名

java - 是否有用于 Java 的控制台分析器?

java - 如何在 java 中运行已安装的终端命令?

java - 为什么我无法捕获此 FileNotFoundException?