view R/rdyncall/demo/stdio.R @ 63:9b6cdffd30dd

- further fixes of inccorect overflow errors for int (and long on LLP64 systems) * prev commit had bugs * added overflow tests for also int, long, long long (for both, lp64 and llp64) - while at it, fixing a reference leak when not using python with utf8 caching
author Tassilo Philipp
date Sun, 19 May 2024 15:33:18 +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)