From keith at wehi.EDU.AU  Thu Nov 11 04:33:43 2010
From: keith at wehi.EDU.AU (Keith Satterley)
Date: Thu, 11 Nov 2010 14:33:43 +1100
Subject: [Rd] Problem with system2(), directing STDERR to a file
In-Reply-To: <AANLkTi=vzmZ=Lj+6PQ3zPquJ6opqc+dz4CkhuJEX9sMp@mail.gmail.com>
References: <AANLkTi=vzmZ=Lj+6PQ3zPquJ6opqc+dz4CkhuJEX9sMp@mail.gmail.com>
Message-ID: <4CDB6417.4010700@wehi.edu.au>

Looking at help for tempfile,

"tempfile" returns a vector of character strings which can be used as 
names for temporary files.
 
and

 For "tempfile" a character vector giving the names of possible
     (temporary) files. Note that no files are generated by "tempfile".


try a file.create(t) after tempfile()

cheers,

Keith


Dan Tenenbaum wrote:
> According to ?system2, I should be able to direct the output of STDERR to a
> file by giving the filename as a character vector to the "stderr" argument.
>
> But here is what happens.
>
> Given a ruby script test.rb (with its executable bit set):
>
> #!/usr/bin/env ruby
> STDOUT.puts "stdout"
> STDERR.puts "stderr"
>
> And the following R code:
>
>   
>> t <- tempfile()
>> res <- system2("./test.rb", stdout=TRUE, stderr=t)
>>     
> stderr
>   
>> res
>>     
> [1] "stdout"
>   
>> file.exists(t)
>>     
> [1] FALSE
>
> I would expect the file t to exist and contain "stderr", and I would expect
> not to see "stderr" in the console.
>
> Also, there is a typo in the man page - the command is listed as "system" in
> the Description instead of "system2".
>
> The reverse behavior does work correctly:
>   
>> res <- system2("./test.rb", stdout=t, stderr="")
>>     
> stderr
>   
>> file.exists(t)
>>     
> [1] TRUE
>
>
> Thanks!
> Dan
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>   

______________________________________________________________________
The information in this email is confidential and intend...{{dropped:4}}



[Rd] Problem with system2(), directing STDERR to a file
Keith Satterley