J'utilise la gemme open4
et j'ai des problèmes de lecture depuis les processus engendrés stdout. J'ai un programme de rubis, test1.rb
:Pourquoi ne peut-on pas ouvrir read4 à partir de stdout lorsque le programme attend stdin?
print 'hi.' # 3 characters
$stdin.read(1) # block
Et un autre programme rubis dans le même répertoire, test2.rb
:
require 'open4'
pid, stdin, stdout, stderr = Open4.popen4 'ruby test1.rb'
p stdout.read(2) # 2 characters
Quand je lance le deuxième programme:
$ ruby test2.rb
Il se trouve juste là pour toujours sans rien imprimer. Pourquoi cela arrive-t-il, et que puis-je faire pour l'arrêter?