Você é curiosamente fascinado por nomes. /dev/ptmx
não é um "driver", é apenas um nome no sistema de arquivos, que tem um significado especial.
Um processo abre uma nova master pty chamando posix_openpt()
, que retorna um descritor de arquivo; o mesmo efeito pode ser alcançado chamando open()
on /dev/ptmx
. Cada vez que um processo chama open()
de /dev/ptmx
a novo pseudoterminal é criado; o pseudoterminal é destruído quando não há mais processos com este descritor de arquivo aberto. Este descritor de arquivo refere-se ao lado mestre do pseudoterminal e pode ser passado para processos descendentes como qualquer outro descritor de arquivo.
Para obter informações mais detalhadas, consulte unix.stackexchange.com/questions/117981 . (Dica do Hat para @JdeBP para a sugestão.)
Quando um processo tiver um descritor de arquivo referente a um lado mestre do pseudoterminal, ele poderá descobrir o nome do lado escravo do pseudoterminal chamando ptsname()
e poderá passar esse nome para qualquer processo que desejar controlar através do pseudoterminal.