为什么打开关闭一个文件什么也不干也会segmentation fault?

软件和网站开发以及相关技术探讨
回复
VisionMiracle
帖子: 42
注册时间: 2006-08-20 8:20

为什么打开关闭一个文件什么也不干也会segmentation fault?

#1

帖子 VisionMiracle » 2006-08-31 8:56

就是插入这一段:

FILE * np;
np=fopen64("ExpectedN","w");
if (np==NULL)
{

}

fclose(np);

就segmentation fault
注释掉就好了
可是这几句有什么问题?
lpknnkh
帖子: 54
注册时间: 2006-02-07 18:07

#2

帖子 lpknnkh » 2006-09-06 17:41

fopen64函数的返回值是int型,不是像fopen那样返回FILE*类型.

代码: 全选

#include <stdio.h>

int main(void)
{
    int np;
    
    np = fopen64("ExceptionN", "w");
    if (np == -1)
    {
       /* TODO */
    }
    
    close(np);
}
[/code]
头像
ubuntu_amateur
帖子: 79
注册时间: 2006-06-10 14:58
来自: China

#3

帖子 ubuntu_amateur » 2006-09-07 13:52

因为未判断是否有无

FILE * np;
np=fopen64("ExpectedN","w");
if (np==NULL)
{

}

if (np!=NULL)
{
fclose(np);
}
回复