원시 모드에서 터미널에 문자를 입력하면 상대방의 응용 프로그램은 입력한 문자의 ASCII 코드를 읽습니다.
그런데 터미널에서 백스페이스를 누르면 상대방의 애플리케이션은 무엇을 읽습니까?
답변1
실제로 터미널에 문자를 입력하면 애플리케이션이 해당 문자를 읽습니다.
더 정확하게 말하자면, 터미널에 문자를 입력하면 하나 이상의 바이트로 변환됩니다. 대부분의 최신 Unix 시스템에서는UTF-8문자의 인코딩입니다. 애플리케이션은 이러한 바이트를 읽고 문자를 다시 조합합니다. 이것은 여전히 ASCII 코드가 아닙니다. ASCII는 7비트 인코딩이므로 ASCII 문자 집합의 모든 문자는 1바이트에 맞습니다.
기능이나 커서 키(예: , , , 등)를 입력하면 다음 BackSpace과 Tab같이 Return인코딩 F1됩니다 Left.제어 문자또는이스케이프 시퀀스. ^I(바이트 값 9) Tab및 ^M(바이트 값 13) 과 같이 기능 키에 해당하는 제어 문자가 있습니다 Return. 대부분의 다른 기능 키는 이스케이프 문자(^[, 바이트 값 27)로 시작하는 이스케이프 시퀀스를 보냅니다.
BackSpace제어 문자를 보냅니다. 역사적인 이유로 보내는 제어 문자는 터미널과 해당 구성에 따라 다릅니다. ^H(바이트 값 8) 또는 ^?(바이트 값 127)일 수 있습니다. 많은 최신 터미널에서는 구성에서 이 설정을 변경할 수 있습니다.버퍼링되지 않은/비표준 모드에서 백스페이스를 허용하는 방법은 무엇입니까?. 설정이 자동으로 선택되지 않으면 를 사용하여 선언할 수 있습니다 stty
.
자세한 배경 정보는 다음을 참조하세요.키보드 입력과 텍스트 출력은 어떻게 작동합니까?그리고GNU 화면 "명령 문자"를 정의하기 위한 포괄적인 가능성 세트를 제공하는 방법은 무엇입니까?