我排到STDOUT使用该代码的文件:对外输出标准输出到一个文件,然后再返回
STDOUT.reopen(File.open("./OUTPUT",'w+'))
现在我需要的路线STDOUT到终端一次。
我该怎么做?
我排到STDOUT使用该代码的文件:对外输出标准输出到一个文件,然后再返回
STDOUT.reopen(File.open("./OUTPUT",'w+'))
现在我需要的路线STDOUT到终端一次。
我该怎么做?
修订
orig_std_out = STDOUT.clone
STDOUT.reopen(File.open('OUTPUT', 'w+'))
puts "test to file"
STDOUT.reopen(orig_std_out)
puts "test to screen"
您需要重新打开STDOUT的文件句柄1,这是标准输出(0=stdin, 1=stdout, 2=stderr
)标准FD手柄。
我不是一个Ruby的家伙,但我认为这是对的:
STDOUT.reopen(IO.for_fd(1, "r"))
更简单,如果在UNIX上:
STDOUT.reopen 'OUTPUT'
puts 'text to file'
STDOUT.reopen '/dev/tty'
puts 'text to console'