Here is the test code I first used to call the R function from C++ program. At the end, the warning message came out.<div><br></div><div><div>double two_sample_logrank(RInside R, double* t, int* d, int sample_size)</div><div>
{</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>double p_val = 0;</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>int n = 2*sample_size;</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>std::string txt =                   // load library, run regression, create summary</div>
<div>        "suppressMessages(require(splines));"</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>"suppressMessages(require(survival))";</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>R.parseEvalQ(txt);                  // eval command, no return</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>double* g = new double[n];</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>int i = 0;</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>for(i=0; i<sample_size; i++)<span class="Apple-tab-span" style="white-space:pre">     </span>g[i] = 1;</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>for(i=sample_size; i<n; i++)<span class="Apple-tab-span" style="white-space:pre">     </span>g[i] = 2;</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>/* construct vectors used in R from double* and int* */</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>std::vector<double> std_t(t, &t[n]);</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>R["t"] = std_t;</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>std::vector<int> std_d(d, &d[n]);</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>R["d"] = std_d;</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>std::vector<int> std_g(g, &g[n]);</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>R["g"] = std_g;</div><div><br>
</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>txt = "df <- data.frame(t,d,g);"</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>"cat('Showing df\n'); print(df); "</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>"sdf <- survdiff(Surv(t,d)~as.factor(g), data=df);"</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>"cat('Showing sdf\n'); print(sdf); "</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>"p.val <- 1 - pchisq(sdf$chisq, length(sdf$n) - 1);"</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>"trend <- (sdf$obs - sdf$exp)<0;"</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>"if (trend[2]==FALSE) {p.val <- 0.9999};"</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>"p.val"; //return the p.val of survdiff</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>p_val = R.parseEval(txt);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">   </span>delete [] g;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>return p_val;</div>
<div>}</div><div><br></div><div>int main(int argc, char* argv[]){</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>printf("get in\n");</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">       </span>RInside R(argc, argv);</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>double t[] = {1.0, 2.0, 3, 0.3, 4, 0.9, 5, 8.9, 10, 0.5};</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>int d[] = {1, 1, 0, 0, 0, 1, 0, 1, 0, 1};</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>int sample_size = 5;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>double p_val = 0.0;</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>p_val = two_sample_logrank(R, t, d, sample_size);</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>printf("get out with %2.4f\n:", p_val);</div>
<div>}</div></div><div><br></div><div><br></div><div><br><br><div class="gmail_quote">On Sat, Feb 11, 2012 at 12:28 AM, Dirk Eddelbuettel <span dir="ltr"><<a href="mailto:edd@debian.org" target="_blank">edd@debian.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><br>
On 10 February 2012 at 16:57, Haiying Pang wrote:<br>
|  <br>
| I am calling a R function through Rcpp and RInside in my c++ program in Linux.<br>
| There are a lot of warning messages saying "no graphics system to unregister"<br>
| that were outputed to my log file, which leaded to a hug log file that I can<br>
| hardly open after letting the code run for a few hours. Is there anyone who<br>
| knows the reason and how to avoid the printing of such warning messages? I<br>
| appreciate for your help!<br>
<br>
</div></div>Without a minimal reproducible example, nobody is going to be able to help<br>
you.<br>
<span><font color="#888888"><br>
Dirk<br>
<br>
--<br>
"Outside of a dog, a book is a man's best friend. Inside of a dog, it is too<br>
dark to read." -- Groucho Marx<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Haiying Pang<br>
</div>