[Rd] setting environmental variable inside R function to call C function
Barry Rowlingson
b.rowlingson at lancaster.ac.uk
Tue Jun 3 20:06:13 CEST 2014
What does c_fun look like? Here's mine:
#include <stdio.h>
#include <stdlib.h>
void c_fun(){
printf("TMP is %s\n", getenv("TMP"));
}
and I then do this at the shell prompt:
R CMD SHLIB c_fun.c
and this at the R prompt:
dyn.load("c_fun.so")
wrapper()
and I get:
> wrapper()
[1] "A"
TMP is A
list()
Is that not what you want?
tldr; works for me.
On Tue, Jun 3, 2014 at 5:55 PM, Bowen Meng <bowen.m04 at gmail.com> wrote:
> wrapper <- function(){
> Sys.setenv(TMP="A")
> print(Sys.getenv("TMP"))
>
> .C("c_fun")
> }
>
>
> As the example above, I hope to set an env var $TMP inside the R function
> "wrapper", which affects the functionality of the C function call "c_fun".
> Also the print line shows that $TMP is set to be "A", but the function call
> of "c_fun" was not affected.
>
> Does anyone know why and how to correctly set the env var for subsequent
> functions?
>
> Thanks,
> BW
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list