当我们使用write()
系统调用函数在ptm master上写入时,该pty_write()
函数会被触发,因为/dev/ptmx
它是一个设备文件。原型write()
是:
ssize_t write(int fd, const void *buf, size_t count);
其中fd
是通过调用 open 获得的文件描述符/dev/ptmx
。
原型pty_write()
是:
int pty_write(struct tty_struct *tty, const unsigned char *buf, int c);
tty
ptm 在哪里?
正如您所看到的,这两个函数都有一个缓冲区和许多要作为参数写入的字节。但第三个参数不同。该write()
函数有一个文件描述符,并且pty_write()
函数有 tty 结构。
内核如何将函数的文件描述符链接write()
到函数的右侧 tty (ptm) pty_write()
?