![사용자가 원시 모드에서 터미널의 백스페이스를 누르면 애플리케이션이 무엇을 읽나요?](https://linux55.com/image/121118/%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EC%9B%90%EC%8B%9C%20%EB%AA%A8%EB%93%9C%EC%97%90%EC%84%9C%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%98%20%EB%B0%B1%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A5%BC%20%EB%88%84%EB%A5%B4%EB%A9%B4%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%B4%20%EB%AC%B4%EC%97%87%EC%9D%84%20%EC%9D%BD%EB%82%98%EC%9A%94%3F.png)
원시 모드에서 터미널에 문자를 입력하면 상대방의 응용 프로그램은 입력한 문자의 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 화면 "명령 문자"를 정의하기 위한 포괄적인 가능성 세트를 제공하는 방법은 무엇입니까?