>  기사  >  백엔드 개발  >  줄바꿈을 요구하지 않고 어떻게 채널에 키 입력을 보낼 수 있습니까?

줄바꿈을 요구하지 않고 어떻게 채널에 키 입력을 보낼 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 09:39:27276검색

How Can I Send Keystrokes to a Channel Without Requiring a Newline?

줄바꿈 요구사항 없이 채널에 키 입력 보내기

이 질문은 사용자 키 입력을 입력할 때 채널에 직접 보내는 문제를 탐구하는 것을 목표로 합니다. 개행 문자가 필요 없이 stdin으로 변환됩니다. 제공된 코드는 이를 시도하지만 제한 사항에 직면합니다. reader.ReadByte() 메서드는 계속 진행하기 전에 줄바꿈을 기다립니다.

해결책은 stdin이 일반적으로 기본적으로 라인 버퍼링된다는 점을 이해하는 데 있습니다. 이는 Go의 고유한 특성이 아닌 개행 문자가 나타날 때까지 입력이 즉시 생성되는 것을 방지합니다.

원하는 동작을 달성하려면 플랫폼별 솔루션이 필요합니다. 한 가지 옵션은 버퍼링되지 않은 입력을 처리하는 방법을 제공하는 ncurses 라이브러리를 사용하는 것입니다. 또 다른 대안은 경량 go-termbox 패키지입니다.

그러나 완전 수동 접근 방식을 선호하는 경우 termios용 C 바인딩을 자세히 살펴보거나 Linux 시스템에서 Go syscall을 직접 사용할 수 있습니다. Windows가 이를 처리하는 방법은 불분명하지만 ncurses 또는 termbox의 소스 코드를 통해 탐색할 수 있습니다.

위 내용은 줄바꿈을 요구하지 않고 어떻게 채널에 키 입력을 보낼 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.