我有一个通向远程终端的开放套接字。使用"Force telnet client into character mode“的答案,我能够将终端设置为字符模式。
我的问题是,如何使用此方法将光标隐藏在远程终端中?
发布于 2010-04-21 00:44:44
这是ncurses库可以为您做的事情。
curs_set()函数可以使光标不可见。
发布于 2012-03-07 23:33:30
为了扩展mjh2007的答案,下面的c/c++代码将实现将转义代码发送到终端,并且比原始的十六进制数字稍微更具可读性。
void showCursor(bool show) const {
#define CSI "\e["
if (show) {
fputs(CSI "?25h", stdout);
}
else {
fputs(CSI "?25l", stdout);
}
#undef CSI
}发布于 2010-04-21 00:39:12
如果这使用的是'telnet‘应用程序,那么你的应用程序应该发送'IAC WILL ECHO’来禁用远程端的回显。这对于输入密码或如果您的应用程序正在进行回显时非常有用。
#define TEL_IAC "\377"
#define TEL_WILL "\373"
#define TEL_ECHO "\001"
char buf[4];
snprintf(buf, sizeof(buf), "%c%c%c" TEL_IAC, TEL_WILL, TEL_ECHO);
write(sock, buf, sizeof(buf));或
write(sock, TEL_IAC TEL_WILL TEL_ECHO, 3);希望这能有所帮助。
https://stackoverflow.com/questions/2649733
复制相似问题