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

时间:2019-04-24 01:55:55

标签: linux terminal io

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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