[R] How is a file descriptor stored ?
Berend Hasselman
bhh at xs4all.nl
Wed Aug 7 13:09:47 CEST 2013
On 07-08-2013, at 12:13, mohan.radhakrishnan at polarisft.com wrote:
>
> Hi,
> I thought that 'R' like java will allow me to store file names
> (keys) and file descriptors(values) in a hashmap.
>
>
> filelist.array <- function(n){
> sink("nmon.log")
> cpufile <- new.env(hash=T, parent=emptyenv())
> for (i in 1:n) {
> key <- paste("output", i, ".txt", sep = "")
> assign(key, file( key, "w" ), cpufile)
> }
> sink()
> return (cpufile)
> }
>
> But when I try to test it like this there is an exception
>
> [1] "Exception is Error in UseMethod(\"close\"): no applicable method for
> 'close' applied to an object of class \"c('integer', 'numeric')\"\n"
>
> test.simple.filelist.array <- function() {
>
> execution <- tryCatch({
> sink("nmon.log")
> listoffiles <- filelist.array(3)
> for (v in ls(listoffiles)) {
> print(paste("Map value is [", listoffiles[[v]], "]"))
> fd <- listoffiles[[v]]
> close(fd)
> }
> sink()
> }, error = function(err){
> print(paste("Exception is ",err))
> })
> }
>
> I think I am missing some fundamentals.
>
Read the help page for assign more carefully.
Use
assign(key, file( key, "w" ), envir=cpufile)
In your assign expression you are assigning cpufile to the third formal argument which is pos.
You meant the envir argument, I presume.
Berend
More information about the R-help
mailing list