【发布时间】:2014-09-01 00:21:33
【问题描述】:
我目前正在尝试使用 ncurses 编写一个最小的终端多路复用器。但是,当我尝试 execv 一个 shell 时,它不会打印到窗口,而是启动一个新的子进程来控制窗口(即忽略 ncurses)。
如何防止这种情况并让 ncurses 控制它?有什么方法可以获取 tty 并对其进行控制?
编辑
感谢 cmets 中的 Ross Ridge,我现在知道我需要创建一个伪终端,然后将其读入 ncurses 窗口。但是,我不知道如何让标准输出在 ncurses 窗口中打印。是否有读取文件描述符的 ncurses 函数?还是我必须以某种方式将read() 与printw() 一起使用?
【问题讨论】:
-
您必须使用伪终端。它不会像您希望的那样容易。
-
看看 GNU mc(午夜指挥官)做了什么。它实现了与您想要的类似的东西。