내가 보려고 만드는/C++

[C++] C4996 에러 Error C4996 'fopen': This function or variable may be unsafe.

gaga_ 2021. 5. 23. 01:20

C++에서 fopen 함수를 사용하려면 에러가 난다.

이때, 이 에러를 해결하는 방법은 두 가지가 있다.

 

1. fopen을 사용하되, 두 가지를 추가해준다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

파일에 위 두 가지를 추가해주면 에러가 더 이상 발생하지 않는다.

 

2. fopen_s를 사용한다.

fopen보다 fopen_s이 보안상 더 좋기 때문에 fopen 대신 fopen_s를 사용하면 에러가 발생하지 않는다.

참고로, fopen은 파일 포인터에 직접 받지만 fopen_s는 파일포인터의 주소를 함수를 통해 간접적으로 받는다.

 

예제는 다음과 같다.

FILE *fp;

// fopen
fp = fopen("file.txt", "r");

// fopen_s
fopen_s(&fp, "file.txt", "r");