[Rd] Controlling stdin and stdout in an embedded R instance

Dirk Eddelbuettel edd at debian.org
Fri Jun 17 16:34:57 CEST 2011


On 16 June 2011 at 18:47, Mike Sonsini wrote:
| Hello,
| 
| I am very new to R but my question is with respect to the C API for 
| working with an embedded R console. I have been able to start and stop 
| an embedded R console from within a C program as well as use the API to 
| execute commands in it. I am seeking a mechanism to individually send 
| native R commands to an embedded console and then consume the output of 
| these commands. Specifically, I cannot send a set of commands to the 
| embedded console and then consume all of the output after the execution 
| completes. I have unsuccessfully attempted to assign values to the 
| ptr_R_ReadConsole and ptr_R_WriteConsole function pointers defined in 
| Rinterface.h but do not know if this is a valid approach. I am working 
| in Ubuntu 10.04 and thus the Windows example at the following address is 
| not applicable.
| 
| http://cran.r-project.org/doc/manuals/R-exts.html#Calling-R_002edll-directly
| 
| Does anyone on this list have experience or an example of communicating 
| with an embedded R console using native R commands and consuming the 
| output one command at a time in a "Unix-alike" environment?

Let me see if I understood this correctly:

 - you have managed to embed R in your own application 

 - you now want to control the embedded R instance

and for the latter you want to use stdin and stdout?  Why not use R commands
and consuming R output?

Examples are e.g.

 - littler (available in Ubuntu) which sends R commands line by line to R;
   implemented in plain C. Commands can come from the command-line, from a
   script or from stdin: R still sees them line by line in REPL fashion.

 - RInside which builds on top of the littler experience and the Rcpp API
   (Rcpp is also in Ubuntu) to embed R via a much nicer C++ abstraction
   which, coupled with Rcpp, gives you real easy communication via full blown
   R objects accessible from C++. There are well over a dozen examples in the
   RInside sources

Hope this helps, Dirk

-- 
Gauss once played himself in a zero-sum game and won $50.
                      -- #11 at http://www.gaussfacts.com



More information about the R-devel mailing list