首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

fopen返回NULL,从数据安全的角度,需要fclose么?为什么?解决办法

2012-04-16 
fopen返回NULL,从数据安全的角度,需要fclose么?为什么?RT[解决办法]int fclose(FILE *stream)如果流成功

fopen返回NULL,从数据安全的角度,需要fclose么?为什么?
RT

[解决办法]
int fclose(FILE *stream);
如果流成功关闭,fclose 返回 0,否则返回EOF(-1)。
如果流为NULL,而且程序可以继续执行,fclose设定error number给EINVAL,并返回EOF。
[解决办法]
用fopen()获得的文件句柄不是NULL,那么就需要用fclose()来关闭它。如果是NULL则不需要

null就表示你打开文件失败了,根本都没有成功的访问文件,也就不存在对数据有什么损坏的可能。不需要关闭
[解决办法]
fclose的参数是NULL,执行了也没有用处,所以不需要再调用fclose了
[解决办法]

引用楼主 shepher 的帖子:
RT

[解决办法]
C/C++ code
FILE *fp = NULL;if(NULL != fp)  {     fclose(fp);     fp = NULL;}
[解决办法]
探讨
引用楼主 shepher 的帖子:
RT

文件是在你不需要用它的时候 就可以fclose 这个跟返回是不是NULL 没什么关系

[解决办法]
Of course NOT~!
[解决办法]
不用fclose。
fopen返回NULL,表示文件打开失败,没有得到资源,不需要fclose。
而且fclose(NULL)运行会出错。
[解决办法]
你没有获得文件句柄,fclose的对象呢?
[解决办法]
fclose原形如下,fopen失败则 stream为NULL,穿一个NULL给flcose没有意义
所以但开失败 不需要close

int fclose( 
FILE *stream 
);

[解决办法]
探讨
用fopen()获得的文件句柄不是NULL,那么就需要用fclose()来关闭它。如果是NULL则不需要

null就表示你打开文件失败了,根本都没有成功的访问文件,也就不存在对数据有什么损坏的可能。不需要关闭

[解决办法]
不需要了。fclose主要是针对fopen打开文件时所申请的系统资源的释放,如果fopen打开文件失败,意味着,其也没有申请任何资源,所以,返回值为NULL,所以,也就不需要fclose释放资源了。
[解决办法]
不需要,文件都没打开不必担心会破坏文件里的什么数据
[解决办法]
从数据安全的角度来讲,null指针就是没有指向任何有意义的数据,尝试关闭没有意义的数据不安全。

热点排行