我目前正在学习 TTY 系统,我想创建一个演示应用程序,该应用程序打开/dev/pts/ptmx
后将创建一个新终端,然后让一个进程创建一个新会话,该会话将打开这个新终端并受其控制。
但有些事情很奇怪。为了打开/dev/pts/ptmx
你必须是 root。现在,当您打开 时/dev/pts/ptmx
,您会得到一个文件描述符,您应该将其传递给grantpts
,它将“更改与 fd 对应的主伪终端相对应的从属设备的所有者和模式。从属设备的用户 ID调用进程的真实UID”。但是调用进程必须由 root 运行才能打开/dev/pts/ptmx
,并且只有在那里你才有文件描述符......什么给出了?