- 论坛徽章:
- 0
|
急问:在sco5.05下如何增加和删除伪终端?
看(unix高级编程)就有。
伪终端
===============================================================================
* 像 CCE, xterm, vcongui 等程序, 需要截获字符应用程序的输出, 以便在自己的设备上
绘制终端输出.
* 像 xterm, vcongui 等程序, 还要将自己的输入转换成字符应用程序能够理解的输入.
* 利用伪终端, 上述这些程序就可以对字符应用程序的终端输入和输出进行过虑, 从而
实现与普通终端一样的输入和输出处理.
===============================================================================
伪终端机制
===============================================================================
* 伪终端由两部分组成: 主控终端和从属终端, 分别由两个进程处理, 这两个进程往往
是父子进程.
* 父进程打开伪终端的主控终端, 然后调用 fork 派生子进程.
* 子进程建立新的会话, 并打开对应的从属终端, 并将该从属终端复制为标准输入,
标准输出和标准错误.
* 子进程调用 exec 执行新的程序, 该从属终端就形成了新会话的控制终端.
* 对于子进程来说, 从属终端就是它们的标准输入, 标准输出和标准错误, 同时也是
一个终端设备. 因此, 可以采用 6.6 小节中的终端属性进行控制, 但因为并不是
真正的终端, 因此波特率, 线路控制函数等等将被忽略.
* 任何写入主控终端的数据将成为从属终端的输入; 任何写入从属终端的数据将成为
主控终端的输入. 这样, 主控终端上的进程 (父进程) 就能够为从属终端生成输入,
而且还能够处理从属终端上的输出. |
|