在将终端设置为原始模式后,使用getchar()处理键击时,是否有任何方法可以捕获组合键Ctrl-Enter?
测试时,无论是否按住Ctrl,我都只得到10的char值。
答案 0 :(得分:0)
进行更多实验后,似乎大多数终端都没有为Ctrl-Enter发送唯一的键盘符号。通过使用getchar循环,您可以查看任何终端按键的完整键盘代码:
// set terminal to raw, then...
while( int c = getchar() ) printf( "%d ", c );
某些键(例如F1和Ctrl-K)将生成代码,而其他键组合则不会。不幸的是,Ctrl-Enter不是可编码的组合键。当然,使用具有root访问权限的信号,可以从本地控制台而不是从终端检测到它。