我正在尝试构建自己的控制台,并且我使用以下语句获取RAW访问权限,因此我可以实现一些高级功能,例如实现自动建议功能。按TAB键,BASH shell。
system("/bin/stty raw")
使用此键时,回车键(和其他键)不会正常运行,当我按回车键时,它会显示^ M并且不会转到下一行。
如何将RAW控制台设置为在收到^ M时转到下一行
我也可以将Shell设置为NOT不显示按下的键,这样我就可以使用putchar()将char发送回控制台(所以^ M在按下时不会显示)。
由于
答案 0 :(得分:2)
如何将RAW控制台设置为在收到^ M
时转到下一行
当您读取^ M时,您将向控制台写入适当的控制代码。 原始模式的重点是控制台不执行识别行尾,退格等等的事情,因为您想自己处理它们。一旦你这样做,你需要处理所有这些事情。
我可以设置Shell不显示按下的键
不确定。关闭echo
。使用stty
命令,您可以使用stty raw -echo
,但如果您从C程序执行此操作,那么使用终端API会更好。见man tcsetattr