昨天在程序时,在fopen打开失败,不需要fclose。否则程序会报销,初步分析原因是,fopen打开失败时,
内部并没有分配句柄,如果再去fclose调用,删除句柄,会访问非法内存,导致windows报错。
#include<stdio.h>
#defineF_PATH"d:\\myfile\\file.dat"
intmain(
void
)
{
FILE
*fp=NULL;
//需要注意
fp=
fopen
(F_PATH,
"r"
);
if
(NULL==fp)
{
//fclose
(fp); 千万注意,不能加这句
return
-1;
//要返回错误代码
}
fclose
(fp);
fp=NULL;
//需要指向空,否则会指向原打开文件地址
return0;
}