diff R/rdyncall/demo/stdio.R @ 0:0cfcc391201f

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:26:28 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/R/rdyncall/demo/stdio.R	Thu Mar 19 22:26:28 2015 +0100
@@ -0,0 +1,31 @@
+# Package: rdyncall 
+# File: demo/stdio.R
+# Description: Direct I/O of R raw vectors using C stdio functions
+
+dynport(stdio)
+
+# test: fopen returns NULL pointer on error
+
+nonexisting <- "dummyname"
+f <- fopen(nonexisting, "r")
+is.nullptr(f)
+
+# test: R raw object read/write
+
+tempfile <- "bla"
+f <- fopen(tempfile, "wb")
+writebuf <- as.raw(0:255)
+copy <- writebuf
+copy[[1]] <- as.raw(0xFF)
+fwrite(writebuf, 1, length(writebuf), f)
+fclose(f)
+
+f <- fopen(tempfile, "rb")
+readbuf <- raw(256)
+copybuf <- readbuf
+fread(readbuf, 1, length(readbuf), f)
+copybuf[[1]] <- as.raw(0xFF)
+fclose(f)
+
+identical(readbuf,writebuf)
+