【发布时间】:2020-07-07 05:42:47
【问题描述】:
所以我将 NCurses 用于一个项目,并且我使用它的终端接受特殊的转义序列,以实现播放音频等自定义功能。在发送这些转义序列时,光标的位置并不重要,但是在使用 printf 时,它不会被推送到输出流。有没有办法绕过ncurses直接写入终端?我听说可能会恢复流并在将它们还给 ncurses 之后,但这似乎很老套。
【问题讨论】:
-
不,看我自己的解决方案
所以我将 NCurses 用于一个项目,并且我使用它的终端接受特殊的转义序列,以实现播放音频等自定义功能。在发送这些转义序列时,光标的位置并不重要,但是在使用 printf 时,它不会被推送到输出流。有没有办法绕过ncurses直接写入终端?我听说可能会恢复流并在将它们还给 ncurses 之后,但这似乎很老套。
【问题讨论】:
我最终找到了一个 hacky 解决方案,因为我只需要将转义码发送到终端模拟器(光标位置和其他上下文无关紧要)
我使用 fputs 写入 STDOUT,然后使用 fflush() 将其推送到终端。
fputs("\033]16;2", stdout);
fflush(stdout);
【讨论】: