使用getchar()以原始模式捕获Ctrl-Enter?

问题描述 投票:0回答:1

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

测试时,我只得到char值10,无论Ctrl是否按下,都是相同的。

linux terminal io
1个回答
0
投票

经过一些更多的实验后,似乎大多数终端都没有为Ctrl-Enter发送唯一的密钥。通过使用getchar循环,您可以看到任何终端按键的完整密钥代码:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.