伪终端还有其他特性,我们在这里简略提一下。AT&T和4.3+BSD系统的操作手册有更详细的内容。
打包模式能够使伪终端主设备了解到伪终端从设备的状态变化。在SVR4系统中可以将流模块pckt压入主设备端来设置这种模式。图19-2显示了这种可选模式。在4.3+BSD系统中可以通过TIOCPKT的ioctl来设置这种模式。SVR4和4.3+BSD系统中具体的打包模式有所不同。在SVR4系统中,读取伪终端主设备的进程必须调用getmsg从流中取得数据,这是因为pckt模块将一些事件转化为无数据的流消息。在4.3+BSD系统中每一次从伪终端主设备的读操作都会在可选数据之后返回状态字节。无论实现的方法是什么样的,打包模式的目的是,当伪终端从设备之上的行规程模块出现以下事件时,通知进程从伪终端主设备读取数据:读入队列被刷新;写出队列被刷新;输出被停止(如:Ctrl-S);输出重新开始;XON/XOFF流开关被关闭后重新打开;XON/XOFF流开关被打开后重新关闭。这些事件被rlogin客户机和rlogind服务器等使用。
伪终端主设备可以用TIOCREMOTE的ioctl将伪终端从设备设置成远程模式。虽然SVR4和4.3+BSD系统使用同样的命令来打开或关闭这个特性,但是在SVR4系统中ioctl的第三个参数是一个整型数,而4.3+BSD中是一个指向整型数的指针。
在探讨伪终端系统时,我们不妨参考一些相关的资源。例如,您可以阅读《基于云计算模式的远程监护系统》了解更多关于伪终端应用的实践,该文档可以从这里下载,并查看相关的图片以获得更直观的理解:
另外,《远程终端管理系统C》和《基于TCP远程终端管理系统》也提供了丰富的远程管理模式的示例,这些资源可以从这里和这里获取。
暂无评论