繁体   English   中英

如何在C中使用ssh功能实现控制台?

[英]How do I implement a console with ssh features in C?

也就是说,它应该支持向上/向下箭头键和ctrl-r来反向搜索。 我应该开始吗?

答案取决于你想要的低级别。 使用readlineeditline是高级答案。 下一级将是使用libncurses并调用getch()来读取键盘输入,然后自己处理历史记录/搜索。

最低级别(对于终端)正在处理实际的输入字节流。 箭头键根据您的特定终端发送特定的字符序列。 例如,vt100模拟器将发送^ [[A表示“向上箭头”,^ [[B表示“向下箭头”,依此类推。 要阅读这些内容,您需要设置终端属性以立即返回输入,而不是等待换行; 为此,请使用termios函数禁用规范输入模式。 然后只需一次读取输入一个字符,看看你是否得到了字符(27,91,65),你知道这是一个向上箭头并做出相应的响应。

如果您使用不同的终端仿真器,这个低级别是繁琐且脆弱的,并且无法工作(尽管您可以使用terminfo为其他终端获取适当的输入序列。)

如果您的位置低于终端(串行线,X窗口,位图显示等),则答案会再次更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM