ho indirizzati STDOUT a un file utilizzando questo codice:Emissione STDOUT a un file e Back Again
STDOUT.reopen(File.open("./OUTPUT",'w+'))
ora ho bisogno di rotta STDOUT al terminale di nuovo.
Come faccio?
ho indirizzati STDOUT a un file utilizzando questo codice:Emissione STDOUT a un file e Back Again
STDOUT.reopen(File.open("./OUTPUT",'w+'))
ora ho bisogno di rotta STDOUT al terminale di nuovo.
Come faccio?
AGGIORNATO
orig_std_out = STDOUT.clone
STDOUT.reopen(File.open('OUTPUT', 'w+'))
puts "test to file"
STDOUT.reopen(orig_std_out)
puts "test to screen"
È necessario riaprire STDOUT sulla maniglia di file 1, che è il manico fd standard per stdout (0=stdin, 1=stdout, 2=stderr
).
Io non sono un ragazzo di Ruby, ma credo che questo è circa la destra:
STDOUT.reopen(IO.for_fd(1, "r"))
Ancora più semplice se su UNIX:
STDOUT.reopen 'OUTPUT'
puts 'text to file'
STDOUT.reopen '/dev/tty'
puts 'text to console'