E D R , A S I H C RSS

Analysis Windows2000 Rebooting Code

No older revisions available

No older revisions available



다음 코드를 Windows 2000 환경에서 실행하게 되면..
VS 6.0 에서는 Reboot 현상이 발생하고, lcc 컴파일러의 경우 컴퓨터가 다운되어 버린다.

~cpp 
#include <stdio.h>
int main(void)
{
    printf("\t\b\b");
    return 0;
}

이 이유에 대해서 토론해봅시다. ^^;


가정 1. Windows 2000 콘솔창의 버그 때문.


1) Visual C++ 6.0 에서 Ctrl+F5 실행할 때 프로그램 종료 후. Press Any Key 라는 구문이 찍힌다.
이 때 \b로 인해서 현재 커서의 위치가 화면 범위를 벗어서 이 구문을 찍을 때 Reboot이 됨.

2) 생성된 exe 파일을 cmd 콘솔에서 직접 실행시 Reboot 현상이 발생하지 않는 것으로 보아. 코드 이상으로 Reboot 현상이 발생되는것이 아님.

3) cmd 콘솔창을 새로이 띄우고 다음 코드의 결과 exe 파일을 수행 했을 때 같은 Reboot 현상이 발생됨.

~cpp 
#include <stdio.h>
int main(void)
{
    for(;;)
        printf("\t\b\b\b\b\b\b\b\ba");
    return 0;
}
현재 커서 위치보다 뒤쪽에 a를 찍게 위치에서 점점 뒤로 가면서 계속 a를 찍다가. 찍을 수 있는 화면 범위를 벗어 났을 때 Reboot 현상 발생함.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:28
Processing time 0.0179 sec