fopen与fopen_s

在用vs运行程序时遇到了问题,显示错误如下:

错误    1    error C4996: 'fopen': This function or variable may be unsafe.

Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.  

 e:\vs2012projects\consoleapplication2\consoleapplication2\consoleapplication2.cpp    23    1    ConsoleApplication2

这里的问题是提示要使用fopen_s,使用参数如下

errno_t fopen_s(&fp, filename,"r");

fp   文件指针将接收到打开的文件指针指向的指针。
filename   文件名。
"r" 读权限(允许的访问类型)。
---------------------------------------------------
返回值:
如果成功返回0,失败则返回相应的错误代码。

fopen函数如下:

fopen(filename,"r")
—————————————————

返回值:
如果成功返回指向文件的指针,失败则返回null。

相比于fopen函数,fopen_S函数更为安全,因为其多出了溢出检测

在使用的时候需要改变的地方是要定义一个变量err,同时在后面进行判断的时候判断err是否为0(使用fopen是判断fp是否为NULL)

定义语句如下:

errno_t err


另外有关open与fopen的对比参以下文章:

http://blog.sina.com.cn/s/blog_6f3ff2c90100mph8.html

http://www.cnblogs.com/joeblackzqq/archive/2011/04/11/2013010.html




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值