C语言关闭日志文件时忘了将日志文件全局变量指针置为NULL
2017-12-21 11:25
288 查看
C语言写了一个write_log函数以写日志,写了一个close_log_file函数以关闭日志,声明了一个日志文件全局变量文件指针plogFile。
write_log中首先判断plogFile是否为NULL,如果不为NULL,则直接引用plogFile写日志信息;
如果为NULL,则打开以当天日期为后缀的日志文件,并赋值给plogFile,然后写日志信息。
close_log_file中调用fclose(plogFile)关闭日志文件指针。
一开始没有在关闭后置plogFile为NULL,导致下次调用write_log时判断plogFile不为空,从而不能正常打开一个新的日志文件,如此直接引用已关闭的plogFile写日志时出现段错误。
所以应在close_log_file调用fclose(plogFile)关闭文件后,再将plogFile置为NULL(plogFile=NULL),以便下次正常调用write_log。
write_log中首先判断plogFile是否为NULL,如果不为NULL,则直接引用plogFile写日志信息;
如果为NULL,则打开以当天日期为后缀的日志文件,并赋值给plogFile,然后写日志信息。
close_log_file中调用fclose(plogFile)关闭日志文件指针。
一开始没有在关闭后置plogFile为NULL,导致下次调用write_log时判断plogFile不为空,从而不能正常打开一个新的日志文件,如此直接引用已关闭的plogFile写日志时出现段错误。
所以应在close_log_file调用fclose(plogFile)关闭文件后,再将plogFile置为NULL(plogFile=NULL),以便下次正常调用write_log。
相关文章推荐
- C语言:全局变量在多个文件中的使用方法
- C语言:全局变量在多个 c 文件中公用的方法
- C语言全局变量多文件使用
- c语言中全局变量在不同文件中的引用(一)
- C语言全局变量多文件使用
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- C语言如何在两个文件中访问同一个全局变量
- [C语言]防止头文件和全局变量重复定义
- C语言如何在两个文件中访问同一个全局变量
- C语言全局变量多文件使用
- [C语言]防止头文件和全局变量重复定义
- C语言全局变量多文件使用
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!
- c语言工程里其它文件引用全局变量?
- [C语言项目]防止头文件和全局变量重复定义
- c语言中头文件的建立与使用-函数、全局变量、全局数组
- C语言:全局变量在多个 c 文件中公用的方法
- C++ 和 C语言 头文件使用全局变量的异同
- [C语言]除非该数组为全局变量,否则只能在定义数组时获取数组长度,在传递过程中只是传递指针不能再次获取长度
- C语言全局变量多文件使用