如何在原始输入模式下发送终端转义序列?

时间:2009-03-28 18:24:21

标签: c terminal escaping sequence

我有一个在原始模式下使用终端的程序,我想移动光标。我在哪里可以找到这个的转义序列,如何从我的c程序中将它发送到终端?

以下是我目前的情况:

char code[4];
code[0] = 27;
code[1] = 91;
code[2] = '*';
code[3] = 'D';
write(1, code, 4);

3 个答案:

答案 0 :(得分:3)

如果您想控制全屏,那么您应该查看ncurses库。这是一个简单的全屏控制台程序库,其中包含

  • 文字的全屏定位
  • 使用全键盘,包括功能键,插入/删除等
  • 使用属性进行着色,突出显示文本等

答案 1 :(得分:1)

您希望使用termcap来获取此信息,具体取决于用户所处的终端类型。

答案 2 :(得分:1)

我建议您仔细查看cursesncurses库,并计划使用其中一个而不是自己动手。您的目标应该是使用terminfo终端描述系统而不是旧的termcap系统。另请参阅O'Reilly书籍“Termcap and Terminfo”和我最喜欢的标题(主要是因为我似乎在编程时花了很多时间咒骂)“Progamming With Curses”。 (然而,那本书是古老的 - 1986年 - 并且还有其他更近期的同一主题的书可能是更好的选择;但我仍然喜欢这个标题。)