수요일, 11월 28, 2007

[B급프로그래머] 컴퓨터 마술? 아냐... 다 이유가 있다.

점심 먹고 마구 졸리는 와중에 컴퓨터 마술이라는 글을 읽었다. 그런데, B급 프로그래머 입장에서는 아무리 봐도 마술이 아닌 듯이 보인다. 비밀을 한번 풀어볼까?



1. 첫번째 마술
CON 폴더를 한번 만들어보기 바란다.
절대로 만들어지지 않는 것을 알수 있다.
MS에서도 왜 그러는지 모르겠다는군요.


예전 DOS 시절에 copy con 명령을 기억하기 바란다. 답이 풀리지? T_T 폴더가 아니라 파일도 당연히 못 만든다.



2. 2번째 마술
1) 새로운 메모장(notepad)을 연다
2) Bush hid the facts 라고 쓰고 아무 이름으로 저장한다.
3) 메모를 닫고 다시 저장한 파일을 연다.
..이상하군요..


C:\tmp>strings c:\windows\NOTEPAD.EXE | grep IsTextUnicode
IsTextUnicode

MSDN에 따르면 IsTextUnicode는 "Determines if a buffer is likely to contain a form of Unicode text."이라고 하는데... 유니코드를 판단하는 과정에서 너무 작은 문자열 때문에 혼동을 일으킨 듯이 보인다. 실제로 다음과 같이 비주얼스튜디오로 콘솔 프로그램을 짜봐도 동일한 결과가 나오므로 notepad.exe 잘못은 아님. B급 프로그래머도 예전에 유니코드 판별 루틴을 짜봤는데... 텍스트 분량이 작으면 결코 쉽지 않다. T_T




BOOL check_unicode = IsTextUnicode("Bush hid the facts", strlen("Bush hid the facts"), NULL);
printf("check_unicode: %d\n", check_unicode);

// 컴파일 후 실행하면 결과 1(유니코드) 반환. OTL


3. 3번째 마술
마이크로소프트 워드를 열고 다음과 같이 입력한다.
=rand (200, 99)
엔터를 치고 결과를 보기바란다.
정말 이상하군요.
빌게이츠도 왜 그런지 모른다는..


MSDN 'How to insert sample text into a document in Word' 참조



프리스티지? 마술? 알고 나니 진짜 별거 아니지?



EOB

댓글 1개: