zoukankan      html  css  js  c++  java
  • 关于新版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:Usersadminsource
    eposConsoleApplication1ce.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
                );
  • 相关阅读:
    C# 多线程总结 异常处理 线程取消 锁(lock)
    C# sync/async 同步/异步
    C# Parallel 多线程并发
    C# Task TaskFactory 异步线程/异步任务
    C# ThreadPool 线程池
    Nginx基础配置
    Nginx配置通用语法
    Nginx进程间的关系
    Nginx命令行控制
    Flask框架02(路由)
  • 原文地址:https://www.cnblogs.com/yiniantt/p/14283374.html
Copyright © 2011-2022 走看看