view R/rdyncall/demo/stdio.R @ 29:6cc2b7fc7ea2

bigger pydc update: - cleanups and refactoring - python 2 fixes in var conversions (especially w/ respect to int vs long) - fix to pydc.free() which didn't work at all - fix to return python bool as actual bool - test lib covering all conversions (manual verification, though :-/)
author Tassilo Philipp
date Wed, 08 Apr 2020 22:17:43 +0200
parents 0cfcc391201f
children
line wrap: on
line source

# 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)