在用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" 读权限(允许的访问类型)。
"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