gpt4 book ai didi

ruby - 为什么程序在等待 stdin 时 open4 不能从 stdout 读取?

转载 作者:数据小太阳 更新时间:2023-10-29 08:34:46 25 4
gpt4 key购买 nike

我正在使用 open4 gem 并且在从生成的进程标准输出中读取时遇到问题。我有一个 ruby​​ 程序,test1.rb:

print 'hi.' # 3 characters
$stdin.read(1) # block

和同一目录下的另一个 ruby​​ 程序,test2.rb:

require 'open4'

pid, stdin, stdout, stderr = Open4.popen4 'ruby test1.rb'
p stdout.read(2) # 2 characters

当我运行第二个程序时:

$ ruby test2.rb

它只是永远坐在那里,不打印任何东西。为什么会发生这种情况,我可以做些什么来阻止它?

最佳答案

我需要将 test1.rb 更改为此。我不知道为什么。

print 'hi.' # 3 characters
$stdout.flush
$stdin.read(1) # block

关于ruby - 为什么程序在等待 stdin 时 open4 不能从 stdout 读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3225393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com