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