사용자가 원시 모드에서 터미널의 백스페이스를 누르면 애플리케이션이 무엇을 읽나요?

사용자가 원시 모드에서 터미널의 백스페이스를 누르면 애플리케이션이 무엇을 읽나요?

원시 모드에서 터미널에 문자를 입력하면 상대방의 응용 프로그램은 입력한 문자의 ASCII 코드를 읽습니다.

그런데 터미널에서 백스페이스를 누르면 상대방의 애플리케이션은 무엇을 읽습니까?

답변1

실제로 터미널에 문자를 입력하면 애플리케이션이 해당 문자를 읽습니다.

더 정확하게 말하자면, 터미널에 문자를 입력하면 하나 이상의 바이트로 변환됩니다. 대부분의 최신 Unix 시스템에서는UTF-8문자의 인코딩입니다. 애플리케이션은 이러한 바이트를 읽고 문자를 다시 조합합니다. 이것은 여전히 ​​ASCII 코드가 아닙니다. ASCII는 7비트 인코딩이므로 ASCII 문자 집합의 모든 문자는 1바이트에 맞습니다.

기능이나 커서 키(예: , , , 등)를 입력하면 다음 BackSpaceTab같이 Return인코딩 F1됩니다 Left.제어 문자또는이스케이프 시퀀스. ^I(바이트 값 9) Tab및 ^M(바이트 값 13) 과 같이 기능 키에 해당하는 제어 문자가 있습니다 Return. 대부분의 다른 기능 키는 이스케이프 문자(^[, 바이트 값 27)로 시작하는 이스케이프 시퀀스를 보냅니다.

BackSpace제어 문자를 보냅니다. 역사적인 이유로 보내는 제어 문자는 터미널과 해당 구성에 따라 다릅니다. ^H(바이트 값 8) 또는 ^?(바이트 값 127)일 수 있습니다. 많은 최신 터미널에서는 구성에서 이 설정을 변경할 수 있습니다.버퍼링되지 않은/비표준 모드에서 백스페이스를 허용하는 방법은 무엇입니까?. 설정이 자동으로 선택되지 않으면 를 사용하여 선언할 수 있습니다 stty.

자세한 배경 정보는 다음을 참조하세요.키보드 입력과 텍스트 출력은 어떻게 작동합니까?그리고GNU 화면 "명령 문자"를 정의하기 위한 포괄적인 가능성 세트를 제공하는 방법은 무엇입니까?

관련 정보