楼主:
deo2000 (800IM)
2016-10-04 11:37:31开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux, 但是这个问题应该不分平台吧?
我这边在 0!=feof() 的时候 fclose 都会发生Segment fault
类似状况到stackoverflow上去找解答,都是说:
1.因为重复fclose
2.fopen根本就没有成功
但是我检查过没有上述两点,所以怀疑是不是已经到档案结尾时,就不用fclose?
作者:
CoNsTaR ((const *))
2016-10-04 11:39:00你要不要 fseek 回去再 close 一次试试看
应该是有别的地方写错,比如说 FILE stream 内容不正确
作者: longlongint (华哥尔) 2016-10-04 12:07:00
feof(里面有东西吗)
作者:
kevingwn (如云如风的人生)
2016-10-04 12:49:00不fclose()要怎么释放fopen()所配置的FILE*资源?
作者:
Qbsuran (Qbsuran)
2016-10-04 13:55:00fclose后给NULL 用NULL判断要不要fclose
作者:
descent (“雄辩是银,沉默是金”)
2016-10-04 14:12:00贴完整程式码看看
作者:
wtchen (没有存在感的人)
2016-10-04 17:40:00程式码贴上来看看,不是每个人都有水晶球的。
请贴完整的程式码,错误出在你没贴出来的地方或是检查一下 fopen 成功时的 fptrMD5List 和 fclose 时其指标值是否一样,或是已经发生原本不该发生的变动然后 strsep 处理那边我怎么看都觉得很危险你应该检查 strFilePath 和 strFileMD5 的值是否为 NULL
八成哪边有非法存取 把stack弄烂了这种bug不一定出在seg fault的那个变量,要看整个区块
建议你把 strsep 的 man page 重看一次,strsep 的第一个参数型态比较特别,但宣告你没写出来照你这个动态配置法基本上到时候 free 时也是会出槌因为 strStream 的值会被 strsep 改动