![FIFO a veces requiere dos escrituras para satisfacer la lectura](https://rvso.com/image/178490/FIFO%20a%20veces%20requiere%20dos%20escrituras%20para%20satisfacer%20la%20lectura.png)
Encontré un comportamiento desconcertante en Ubuntu 18.04.4 LTS.
En una terminal, me gustaría escribir una clave privada en un FIFO.
$ mkfifo /tmp/fifo
$ chmod o-rwx /tmp/fifo
$ chmod g-rwx /tmp/fifo
$ cat id_rsa > /tmp/fifo
En otra terminal, me gustaría leer ese FIFO para poder obtener el contenido de la clave.
$ ssh -i /tmp/fifo -o StrictHostKeyChecking=no <<user@address>>
Esperaría que la escritura en el primer terminal se bloqueara hasta que se produjera la lectura en el segundo terminal, momento en el que ambos se liberarían. Y esto sucede la mayor parte del tiempo.
Desafortunadamente, hay ocasiones en las que se necesitan dos escrituras (la operación cat) para que la lectura sea exitosa; la lectura liberará la primera escritura, pero la lectura en sí no se liberará hasta que se produzca otra escritura.
¿Alguien ha observado este fenómeno antes? Cualquier información sería muy apreciada.