Linux中有没有类似CreateConsoleScreenBuffer/ReadConsoleOutput读取终端内容的函数?

In Linux, are there any functions similar to CreateConsoleScreenBuffer/ReadConsoleOutput to read the terminal contents?

即如何在Linux中创建新的屏幕缓冲区并读取/写入缓冲区内容?我说的屏幕缓冲区是指显示给用户的内容。或者整个屏幕。

我不想使用 ncurses。我找到了 terminfo,但我想要一个函数而不是一个命令。也许ioctl可以读取缓冲区,但我不知道如何使用它。

没有

假设 用户程序 将维护它希望保留的所有屏幕内容的缓冲区。

这实际上是 NCurses 的工作方式:所有输出函数实际上修改 WINDOW 缓冲区,并且 wrefresh() 导致该缓冲区刷新到显示器, 根据需要。

Microsoft 的 Windows 终端路线图期望未来的 TUI 程序也能做到这一点,因为我想这就是它在 Linux 中的工作方式。