
write()
ptmマスターへの書き込みにシステムコール関数を使用すると、デバイスファイルなので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はどこにありますか?
ご覧のとおり、両方の関数にはバッファと引数として書き込まれるバイト数があります。ただし、3番目のパラメータは異なります。関数write()
にはファイル記述子があり、pty_write()
関数にはtty構造があります。
カーネルは、関数のファイル記述子をwrite()
関数の右側のtty(ptm)にどのように連結しますかpty_write()
?