下面是源代码的一小部分,其中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