Mercurial > pub > dyncall > bindings
diff R/rdc/demo/malloc.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/rdc/demo/malloc.R Thu Mar 19 22:26:28 2015 +0100 @@ -0,0 +1,27 @@ +# File: rdc/demo/malloc.R +# Description: sample demo to get malloc/free functions + +if( .Platform$OS.type == "windows" ) { + .windir <- paste(Sys.getenv("windir")[[1]],"\\system32\\",sep="") + .libC <- paste(.windir,"msvcrt",sep="") +} else { + sysname <- Sys.info()[["sysname"]] + if (sysname == "Darwin") + { + .libC <- "/usr/lib/libc.dylib" + } else { + .libC <- "/lib/libc.so.6" + } +} + +dyn.load(.libC) + +bind <- function(name, signature) +{ + address <- getNativeSymbolInfo(name)$address + assign(name, function(...) rdcCall(address,signature,...), parent.frame() ) +} + +bind("malloc","i)p") +bind("free","p)v") +