pty 终端数据包模式 TIOCPKT
如果我启动一个终端,我如何知道它以什么模式启动?谁决定呢?我可以以数据包模式启动我的终端吗,即 TIOCPKT
我遇到了这个数据包模式链接,其中显示:数据包模式通过以下方式启用在主端推送 pckt 模块。
- 我不太明白这一点。
If I start a terminal, how do I know what mode it starts in? Who decides that? Can I start my terminal in packet mode i.e. TIOCPKT
I came across this Packet mode link which says: Packet mode is enabled by pushing the pckt module on the master-side.
- I do not understand this exactly.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您引用的链接适用于 SCO Unix,它具有 STREAMS I/O 子系统。 这里有关于 STREAMS 的很好的概述 (适用于 Solaris,但相同的概念也适用于其他 *nix)。
手册页告诉您必须将 pckt 模块推送到流上,这是通过使用 I_PUSH 命令。上面的第一个链接应该使这个概念更加清晰,因为它描述了 STREAMS 的工作原理。
但遗憾的是,Linux 不支持 STREAMS。要在 Linux 上启用 pty 的数据包模式,请使用 TIOCPKT 调用 ioctl(),如第一个链接中所示。
创建新 pty 时默认为正常(非数据包)模式。
The link you refer to is for SCO Unix, which has the STREAMS I/O subsystem. There is a pretty good overview of STREAMS here (its for Solaris, but same concepts apply to other *nixes).
The manual page tells you that you have to push the pckt module onto the stream, which is done with an ioctl() call with the I_PUSH command. The first link above should make this concept clearer, as it describes how STREAMS works.
But alas, Linux does not support STREAMS. To enable packet mode of a pty on linux, you call ioctl() with TIOCPKT as in the first link of yours.
The default when you create a new pty is normal (non packet) mode.