关于新版VS编辑环境下提示fopen不安全的问题报C4996错误的解决办法

最近在学习C语言的一些文件操作的函数,发现使用fopen的时候,报了一个错误

错误内容如下(直接CV过来的)

严重性 代码 说明 项目 文件 行 源 禁止显示状态
错误 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. ConsoleApplication1
C:\Users\admin\source\repos\ConsoleApplication1\ce.c 8 生成

后面查看了相关的文档,最后搞明白了解决办法

关于新版VS编辑环境下提示fopen不安全的问题报C4996错误的解决办法

解决办法-1

vs2013以上,需要在头文件前添加

define _CRT_SECURE_NO_WARNINGS

否则就会存在安全检查错误

解决办法-2

//使用fopen_s
FILE* file_f = NULL;
fopen_s("t.txt","w+",file_f);

fopen和fopen_s的区别

fopen-源码 只需要提供两个参数,一个文件名称,一个模式

_ACRTIMP FILE* __cdecl fopen(
In_z char const* _FileName,
In_z char const* _Mode
);

fopen_s-源码 需要提供三个参数 第一个是文件指针,第二个文件名,第三个是模式

_ACRTIMP errno_t __cdecl fopen_s(
Outptr_result_maybenull FILE** _Stream,
In_z char const* _FileName,
In_z char const* _Mode
);

posted @ 2021-01-15 17:46  一念天堂tt  阅读(8141)  评论(0)    收藏  举报