C未关闭日志文件不能写日志的问题
一个c程序,每次执行时会执行:
File *log;
log = fopen(logname,"a+");
void mylog(File *f, char *format, ...){
va_list arg;
va_start(arg, format);
if(!f) return;
if(!format){
if(f) fclose(f);
f = NULL;
}
vfprintf(f, format, arg);
va_end(arg);
fflush(f);
}
打开一个日志文件,然后向文件内写入日志信息,如果某个逻辑没有fclose(log),之后再执行这个c程序就发现不会向日志中写入信息了,请问这里if(!f)应该由于f未关闭处于false,不会return,这样就会执行下面的逻辑,那就应该可以写入啊?
谢谢!