O master pseudoterminal (pty) pode ter mais de um slave associado a ele?

2

Eu estava estudando sobre pseudo terminais no Linux. Meu entendimento do par de pty era que o master pty pode ter um escravo associado a ele, cujo descritor de arquivo podemos obter da chamada de sistema ptsname . Mas, eu deparei com essa descrição link e fiquei confuso sobre o possível número de escravos, um mestre pode ter.

Se o mestre tiver mais de um escravo, então como o ptsname decidirá, qual descritor de arquivo deve ser retornado, fora de todos os pseudo-terminais escravos conectados?

Além disso, se mais de um escravo puder existir, então como o mestre irá interagir com cada objeto? Quer dizer, se um processo escreve em mestre fd, ele aparecerá em cada escravo?

Eu também procurei páginas de manual, mas não há nada claramente mencionado que o mestre possa ter mais de um escravo ou não. Além disso, sobre a interação de E / S entre um cenário mestre e vários escravo.

    
por Baba Rocks 28.04.2017 / 06:35

1 resposta

1

Se eu entendi a descrição no link corretamente, um mestre com vários escravos é uma espécie de fluidez não intencional, e você pode obter isso apenas ignorando openpty e abrindo /dev/pts/* nós diretamente, porque o seguinte /dev/pts/* nós apenas obtemos a mesma referência mestre internamente.

Espero que ptsname retorne o primeiro escravo escolhido ao abrir o mestre. Seria um experimento interessante descobrir o que acontece quando se escreve para um mestre com vários escravos: ele só escreve para o primeiro escravo (esperado) ou para todos os escravos (inesperado)?

Eu não vi nenhum aplicativo onde há um mestre com vários escravos.

E pseudo-candidatos BSD são claramente sempre pares, então eu não acho que isso foi intencional.

    
por 28.04.2017 / 09:28