[R-pkg-devel] Calling R's tempdir() from C

Rodrigo Tobar rtob@r @ending from icr@r@org
Fri Aug 10 06:01:45 CEST 2018


Dear all,

I want to create a temporary directory from within my C++ R extension. 
On the other hand, CRAN's policy dictates that one cannot write anything 
outside the boundaries of the session's temporary directory, so I need 
to create it exactly there.

The R API offers R_tmpnam and R_tmpnam2, both of which require the path 
of the directory where the new name will reside. This can be obtained 
using tempdir() in R, but I couldn't find anything similar in the R API. 
Am I missing anything too obvious?

I tried out giving a NULL dirname to R_tmpnam{,2}, hoping that even 
though it's not mentioned in the docs, they would internally use the 
session's tmp dir, but this simply crashed. When embedding R one could 
also use the R_TempDir global variable, but this is flagged as 
unofficial R API for extensions. Finally, the only solution I could find 
was to call the tempdir() R function from within my C++ extension. This 
works fine, but it bothers me that there not an equivalent entry point 
in R's API.

Any pointers would be appreciated. If I'm deeply misunderstanding 
something please also shoot.

Cheers,

Rodrigo



More information about the R-package-devel mailing list