下面是源代碼的一小部分,其中fclose
導致錯誤?這個函數並不總是被調用,在某些特定的條件下調用這個函數。fclose導致分段錯誤?
int write_into_file (char * file_name)
{
FILE * fp = NULL ;
if (file_name == NULL)
{
return FAIL ;
}
if ((fp = fopen (file_name , "r")) == NULL)
{
if ((fp = fopen (file_name, "w")) == NULL)
{
return FAIL ;
}
}
fclose (fp) ;
fp = NULL ;
return SUCESS;
}
我們將大小爲1024的字符緩衝區傳遞給file_name。 請誰能告訴我爲什麼fclose會導致分段錯誤?
試圖通過'gdb'或'valgrind'作爲開始運行它。代碼看起來沒有什麼問題,所以你應該提供儘可能多的關於崩潰的信息。 'fclose()'似乎不太可能是真正的罪魁禍首。 – 2012-01-03 19:00:50
字符緩衝區空終止?字符緩衝區是一個有效的文件名?爲什麼你打開文件閱讀,然後嘗試打開它寫入,如果失敗? – 2012-01-03 19:01:14
的可能的複製[FCLOSE()導致分段錯誤](http://stackoverflow.com/questions/1443164/fclose-causing-segmentation-fault) – 2015-11-13 22:22:14