저 하늘의 구름처럼~

deprecate waring error 본문

DotNet

deprecate waring error

강백호v 2008. 8. 14. 16:47

warning C4996 : 'fopen'가 deprecate로 선언 되었습니다.
vs 2005에서 scanf,fopen 같은 함수를 사용하였을때 발생하는 메시지이다.
마이크로 소프트에서 이러한 함수에서는 오버플로우 발생과 같은 문제들이 있을 수 있기 때문에,scanf_s,fopen_s와 같은 조금더 안전한 형태로 함수를 다시 만들었는데, 이전의 함수 대신에 이러한 함수를 사용하라고, 경고 메시지를 출력해주는 것이다.
만약, 이러한 경고 메시지를 보지 않기를 원하지 않는 다면,
#pragma warning(disalbe:4996) 혹은, #define _CRT_SECURE_NO_DEPRECATE 1
로 선언하여 준다면, 경고 메시지가 출력되지 않을 것이다. 하지만 이는 근본적인 대처가 될수는 없을 것이다.
fopen함수 대신 fopen_s를 사용하는 것이 더 바람적할것이다.
fopen 함수의 사용 형태는 FILE *fp = fopen(filename,"wb"); 이러한 형식이고,
fopens는 FILE *fp; fopen_s(&fp,argv[1],"wb"); 와 같은 형태로 사용 가능하다.