问题描述:RTKLIB 的trace函数可以将计算过程中的各种关键参数、矩阵等输出到指定文件,方便在文件中检查问题。但是我在使用过程中发现开启trace功能后,不仅输出到了文件,而且也输出到了屏幕。我想要的效果是只输出到文件,不要输出到屏幕。
问题原因:trace分等级1-5,等级设置越高,输出的参数越多;我为了只输出自己想要的参数,将部分等级设置为2345才输出时,更改为等级为1的时候就输出;而trace函数中有下方标红的if语句,如果等级设置为1或者不设置时,则屏幕输出。
解决办法:只需要将trace函数中,下方标红的语句注释掉就好了。
extern void trace(int level, const char *format, ...)
{
va_list ap;
/* print error message to stderr */
if (level<=1) {
va_start(ap,format); vfprintf(stderr,format,ap); va_end(ap);
}
if (!fp_trace||level>level_trace) return;
traceswap();
fprintf(fp_trace,"%d ",level);
va_start(ap,format); vfprintf(fp_trace,format,ap); va_end(ap);
fflush(fp_trace);
}