A
Andrew Walrond
I want to log stdout and stderr of a compile to a file, so I use (for
example) this simple ruby script, which works under 1.6.8 and doesn't under
1.8
---------------------------------
#!/bin/ruby -w
$stdout.reopen("my.log","w")
$stdout.sync=true
$stderr=$stdout
$stdout.puts("This from stdout")
$stderr.puts("This from stderr")
system("gcc foobar")
---------------------------------
Running with 1.6.8....
rubyx@atlas public $ ruby --version
ruby 1.6.8 (2002-12-24) [i686-linux-gnu]
rubyx@atlas public $ ./testout.rb
rubyx@atlas public $ cat my.log
This from stdout
This from stderr
gcc: foobar: No such file or directory
gcc: no input files
rubyx@atlas public $
And with 1.8.0...
rubyx@atlas public $ ruby --version
ruby 1.8.0 (2003-08-04) [i686-linux]
rubyx@atlas public $ ./testout.rb
gcc: foobar: No such file or directory
gcc: no input files
rubyx@atlas public $ cat my.log
This from stdout
This from stderr
rubyx@atlas public $
So what is the correct way to do this which will work under 1.8 but also
supports 1.6.8?
TIA
Andrew Walrond
example) this simple ruby script, which works under 1.6.8 and doesn't under
1.8
---------------------------------
#!/bin/ruby -w
$stdout.reopen("my.log","w")
$stdout.sync=true
$stderr=$stdout
$stdout.puts("This from stdout")
$stderr.puts("This from stderr")
system("gcc foobar")
---------------------------------
Running with 1.6.8....
rubyx@atlas public $ ruby --version
ruby 1.6.8 (2002-12-24) [i686-linux-gnu]
rubyx@atlas public $ ./testout.rb
rubyx@atlas public $ cat my.log
This from stdout
This from stderr
gcc: foobar: No such file or directory
gcc: no input files
rubyx@atlas public $
And with 1.8.0...
rubyx@atlas public $ ruby --version
ruby 1.8.0 (2003-08-04) [i686-linux]
rubyx@atlas public $ ./testout.rb
gcc: foobar: No such file or directory
gcc: no input files
rubyx@atlas public $ cat my.log
This from stdout
This from stderr
rubyx@atlas public $
So what is the correct way to do this which will work under 1.8 but also
supports 1.6.8?
TIA
Andrew Walrond