使用 NCurses 将转义序列发送到终端

sending escape sequences to terminal with NCurses

所以我正在为一个项目使用 NCurses,我正在使用它的终端接受特殊的转义序列来实现自定义功能,例如播放音频。发送这些转义序列时光标的位置无关紧要,但是在使用 printf 时它不会被推送到输出流。有没有办法写绕过ncurses直接写到终端?我听说可能会恢复流并在将它们还给 ncurses 之后,但这似乎很老套。

我最终找到了一个 hacky 解决方案,因为我只需要将转义码发送到终端模拟器(光标位置和其他上下文无关紧要)

我使用 fputs 写入 STDOUT,然后使用 fflush() 将其推送到终端。

fputs("3]16;2", stdout);
fflush(stdout);