如果我启动一个终端,我怎么知道它以什么模式启动?谁来决定?我可以在数据包模式下启动我的终端,即TIOCPKT
我遇到了这个数据包模式链接,上面写着:Packet mode is enabled by pushing the pckt module on the master-side.
- 我不完全理解这一点。
您所指的链接适用于 SCO Unix,它具有STREAMS I/O 子系统。这里对 STREAMS 有一个很好的概述(它适用于 Solaris,但相同的概念适用于其他 *nixes)。
手册页告诉您必须将 pckt 模块推送到流上,这是通过使用I_PUSH命令调用 ioctl() 来完成的。上面的第一个链接应该使这个概念更清晰,因为它描述了 STREAMS 的工作原理。
但是很可惜,Linux 不支持 STREAMS。要在 linux 上启用 pty 的数据包模式,您可以使用 TIOCPKT 调用 ioctl(),就像在您的第一个链接中一样。
创建新 pty 时的默认设置是正常(非数据包)模式。