티스토리 뷰


scanf_s는 scanf의 보안에 더 효과적인 방법이다. 

사용방법의 차이는 scanf_s는 char 또는 *char를 사용할 때 버퍼크기를 인자로 더 보내야 한다.

#include<stdio.h>  

int  main(){
	 
	char k[10];
	scanf_s("%9s", k, 10);

	printf("%s", k);

	return 0;
} 



다음 코드에서는 '\0'을 제외하고 9개의 문자를 받는다. 하지만, 버퍼크기를 주지 않으면, 출력이 되지않는다.

이렇게 한 이유는 buffer overrun이나 buffer overflow같은 것을 이용한 공격을 방어하기 위함이라고 한다. 


'Language > C' 카테고리의 다른 글

[C언어] 문자열 함수  (0) 2013.10.05
[C언어] void형 포인터  (0) 2013.10.02
[C언어] 매크로  (0) 2013.10.02
[C언어] #include < >와 #include " "  (0) 2013.10.02
[C언어] 가변인자  (0) 2013.10.02
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday