warning C4996: This function or variable may be unsafe.

VS2005以上版本編譯在其他編譯器下正常通過的C語言程序,你可能會遇到類似如下的警告提示:

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.

原因:因爲C庫的函數,很多函數內部是不進行參數檢測的(包括越界類的),微軟擔心使用這些會造成內存異常,所以就改寫了同樣功能的函數,改寫了的函數進行了參數的檢測,使用這些新的函數會更安全和便捷。

改寫:mkdir改寫爲_mkdir

           fopen改寫爲fopen_s

           strcmp改寫爲strcmp_s

           strcpy改寫爲strcpy_s

解決方法:

1.右鍵工程名-->屬性-->C/C++-->預處理器-->預處理器定義,編輯右邊輸入框加入:_CRT_SECURE_NO_WARNINGS    應用、保存。

或者:右鍵工程名-->屬性-->C/C++-->命令行-->附加選項,加入 \D "_CRT_SECURE_NO_DEPRECATE"。

2.直接改寫函數

     例如:FILE *pFile=fopen("1.txt", "w");
           改爲:
           FILE* pFile;
           fopen_s(&pFile, "1.txt", "w"); 

 

讀寫模式:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章