본문 바로가기

My Study/Programming&Theory

Visual Studio 에서 %n 서식 문자 사용하기

C언어 문제좀 내본다고 VS에서 %n 서식문자를 써보려는데 오류가 발생.. 코드는 아래와 같습니다.

=================================

#include <stdio.h>


int main(void)

{

int val;


printf("ezbeat %n \n",&val);

printf("%d \n",val);


return 0;

}

=================================

컴파일 하고 실행하면..


이와 같은 창이 떠버리게되네요.


중간 문장을 읽어보면 n 형식 지정자는 disable 되어 있다네요.

뭐 결론.. enable 시키면되는데 vs는 디폴트로 %n 서식문자를 막아놓나보네요.


아마 FSB를 방지하기 위함 아닐까요? ^^; 그 이유말곤 막을 이유가 없는 듯 싶군요.


다행히 구글링 결과 해결 방법이 바로 나옵니다. 이 문제를 해결한 코드를 봐보죠.



_set_printf_count_output 함수를 추가시켜서 코드를 구성해봤습니다.


가운데 printf문 2개는 %n이 허용된 부분입니다. 저렇게 %n을 개발자가 사용할 때만 Enable 시켜놓고

그 외에는 disable 시켜놈으로써 FSB에 노출되지 않도록 하는 것이 좋겠네요.


그러면 위 코드에서는 가장 아래있는 printf문을 수행하면?! 아마 뻑이나겠죠? ^^


그 외에도 _get_printf_count_output 함수를 사용하면 상태를 얻어올 수 있습니다.



함수 정의입니다. :D



'My Study > Programming&Theory' 카테고리의 다른 글

Intel VT-x 와 BSOD.. ㅠㅠ  (0) 2012.07.16
PE 파일의 .reloc 섹션  (8) 2012.06.06
ELF 파일의 PLT, GOT  (3) 2012.04.26
Calling Convention Process for AMD 64 Bit  (4) 2012.04.02
Windows rand() 랜덤 비율  (2) 2012.02.14