On 1/12/2006 10:46 AM, Romain Francois wrote: > Hi, > > I'm trying to build a simple R package 'helloWorld' with just one > function that prints 'hello World' on the C side. > I agree that it is completely useless, but I just start mixing R and C. > > My C file is as follows : > > #include <stdio.h> > void helloWorld() { > printf("hello world !\n") ; > } > > When I call it from R, here is what happens : > R> .C("helloWorld", PACKAGE = "helloWorld") > hello world ! > list() > > is it normal that 'list()' is printed ?
Yes, because that is the return value from .C. If you don't want to print it, you could call invisible(.C( ... )) or, more likely, you'd embed this call in a function that produced its own return value after calling .C(). By the way, you should call Rprintf() rather than printf(), if you want your function to work in environments like Windows Rgui. See the Writing R Extensions manual for the details. Duncan Murdoch ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel