在将终端设置为原始模式后,在使用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访问权限的信号可以从本地控制台检测,但不能从终端检测到。