나는 open4
gem을 사용 중이며 생성 된 프로세스 stdout에서 읽는 데 문제가 있습니다. 내가 두 번째 프로그램을 실행하면프로그램이 stdin을 기다리는 중 왜 open4를 stdout에서 읽을 수 없습니까?
require 'open4'
pid, stdin, stdout, stderr = Open4.popen4 'ruby test1.rb'
p stdout.read(2) # 2 characters
는 : 나는 루비 프로그램이, test1.rb
:
print 'hi.' # 3 characters
$stdin.read(1) # block
과 같은 디렉토리에 다른 루비 프로그램, test2.rb
는
$ ruby test2.rb
는 그냥 앉아 영원히 아무 것도 인쇄하지 않습니다. 왜 이런 일이 일어나고 그걸 막기 위해 무엇을 할 수 있습니까?