首页 > 编程语言 > 详细

【C++】fopen与fopen_s

时间:2019-11-12 11:43:16      阅读:101      评论:0      收藏:0      [点我收藏+]

说明:

VS2010中使用fopen,是没有问题的。使用VS2015时由于VS的高版本对文件操作的安全性有了较高的要求,所以会出现如下情况:

技术分享图片

fopen用法: 

fp = fopen(filename,"w")。//返回值: fopen打开文件成功,返回文件指针(赋值给fp),打开失败则返回NULL值;

 fopen_s用法:

errno_t err;
err = fopen_s(&fp,filename,"w")//fopen_s打开文件成功返回0,失败返回非0的错误代码。 

 探讨比较 :

1.fopen_s的安全是在于闭函数fopen多了溢出检测; 
2.在使用上,函数fopen的返回值是文件指针,如果返回的文件指针为NULL时,则表示打开文件失败。而函数fopen_s的返回值是相应的错误代码,通过查看错误代码代表的含义,有助于排查问题。 
3.fopen_s打开的文件不能共享,如果你打开的文件需要共享的话,不能使用fopen_s函数。可以考虑_fopen,_wfsopen这两个函数。

 参数解释:

文件访问
模式字符串
含义解释若文件已存在的动作若文件不存在的动作
"r" 打开文件以读取 从头读 打开失败
"w" 创建文件以写入 销毁内容 创建新文件
"a" 后附 后附到文件 写到结尾 创建新文件
"r+" 读扩展 打开文件以读/写 从头读 错误
"w+" 写扩展 创建文件以读/写 销毁内容 创建新文件
"a+" 后附扩展 打开文件以读/写 写到结尾 创建新文件

【C++】fopen与fopen_s

原文:https://www.cnblogs.com/KMould/p/11839837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!