Re: [R] capturing stderr/stdout

From: Sundar Dorai-Raj <sundar.dorai-raj_at_pdf.com>
Date: Fri, 21 Nov 2008 09:09:30 -0800

Hi, Prof. Ripley,

Thanks for the reply. Mostly I want to capture output as it is written to the stream. For example, I quite often do the following to view the progress of a log file from a computationally intensive script.

  1. Open a console and type:

Rscript script.R >& script.log

which directs both stdout and stderr to "script.log"

2. Open another console and type:

tail -f script.log

This way I get both the script's log file and its current progress.

I guess my question is: Is there a way to accomplish the "tail -f" command in R?

Thanks,

--sundar

Prof Brian Ripley said the following on 11/20/2008 11:43 PM:

> I am not sure what the issue is here. Do you want to capture both stderr 
> and stdout (use 2>1 in the command with an sh-like shell), or is the
> problem that you don't get immediate output?
> 
> The latter is a Perl issue: you need to circumvent output buffering.
> See e.g
> 
> http://perl.plover.com/FAQs/Buffering.html
> 
> Sundar Dorai-Raj wrote:

>> Hi,
>>
>> I have an application in perl that prints some output to either stderr
>> or stdout.
>>
>> Here's an example:
>>
>> # tmp.pl
>> print STDERR "starting iterator\n";
>> for(my $i = 0; $i < 1000000; $i++) {
>> print $i . "\n";
>> }
>>
>> # tmp.R
>> con <- pipe("perl tmp.pl")
>> r <- readLines(con, n = -1)
>> close(con)
>>
>> However, the second line stalls until the perl for-loop finishes. What
>> I would like is to process each line as it comes. E.g. something like:
>>
>> while(TRUE) {
>> r <- readLines(con, n = 1) # read one line
>> if(r == "10000") print(r)
>> if(length(r) == 0) break
>> }
>>
>> Of course, this won't work since I'm not calling readLines
>> appropriately. Answers must work on Windows but may include cygwin
>> utilities if necessary. Any advice would be appreciated. Version info
>> at the end if it matters.
>>
>> Thanks, --sundar
>>
>>
>> > version
>> _
>> platform i386-pc-mingw32
>> arch i386
>> os mingw32
>> system i386, mingw32
>> status
>> major 2
>> minor 8.0
>> year 2008
>> month 10
>> day 20
>> svn rev 46754
>> language R
>> version.string R version 2.8.0 (2008-10-20)
>>
>> ______________________________________________
>> R-help_at_r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
>

R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Fri 21 Nov 2008 - 17:10:12 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 21 Nov 2008 - 18:30:26 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive