Skip to content
Back to formatted view

Raw Message

Message-ID: <alpine.DEB.2.00.1402031442230.7304@luthien.Berkeley.EDU>
Date: 2014-02-03T22:44:12Z
From: Phil Spector
Subject: Capturing output of a C executable
In-Reply-To: <866C1BD8-120A-40E5-9252-AEE2F641B985@plessthan.com>

Dennis -
     The return value from .C will almost never be useful.  If you want to bring
results from the C environment into R, you need to do it by passing an address to
.C which will receive the result.
     You may find this document helpful when interfacing R to C:

          http://www.stat.berkeley.edu/classes/s243/calling.pdf

 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu


On Sun, 2 Feb 2014, Dennis Fisher wrote:

> R 3.0.1
> OS X
>
> Colleagues,
>
> I am experimenting with incorporating C code into R.  After compiling the C code with:
> 	R CMD SHLIB -o FILE.so FILE.c
> and executing:
> 	dyn.load(?FILE.so?)
> (without any errors), I execute the following R functions in a terminal window:
> 	READSAS 	<- function(sourcefile) .C("readsas", sourcefile)
> 	OUTPUT 		<- READSAS("../SASFILES/sdrug.sas7bdat")
> R / C then reads a sas7bdat file and sends the contents to the terminal window.
>
> I expected OUTPUT to contain the text that appear in the terminal window (i.e., the contents of the file).  But, that is not the case; OUTPUT contains:
> 	[[1]]
> 	[1] "../SASFILES/sdrug.sas7bdat"
> It is not clear to my how to capture that appears in the terminal window.
>
> Ultimately, I may need to modify the C code so that the output goes to a file, which I then read into R.  However, it would be better if I did not need to modify the C code.
> Does anyone have any ideas of how I can capture this output within R?
>
> Dennis
>
> Dennis Fisher MD
> P < (The "P Less Than" Company)
> Phone: 1-866-PLessThan (1-866-753-7784)
> Fax: 1-866-PLessThan (1-866-753-7784)
> www.PLessThan.com
>
> ______________________________________________
> 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.
>