作者:
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 改動