首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fclose导致分段错误?

fclose导致分段错误?
EN

Stack Overflow用户
提问于 2012-01-04 02:57:44
回答 2查看 4.6K关注 0票数 2

下面是fclose导致错误的一小部分源代码?这个函数并不总是被调用,在某些特定的条件下,这个函数被调用。

代码语言:javascript
复制
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会导致分段错误吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-04 03:01:27

我认为fclose不可能在这里导致段错误,我认为你的问题出在程序的其他地方。

这可能是堆栈在其他地方被损坏,并且在调用fclose时显示错误。我建议您再检查一次其他源代码,并使用调试器/内存分析器密切关注发生的情况。

我能看到的唯一可能导致错误的事情是file_name不是以null结尾的。

票数 5
EN

Stack Overflow用户

发布于 2012-01-04 03:14:51

fclose()没有问题。问题可能出在file_name与NULL的比较上,也可能出在代码的其他部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8717225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档