tty — 터미널 제어 함수
tty — 터미널 제어 함수
tty를 cbreak 모드와 raw 모드로 전환하는 함수들을 정의하는 모듈이에요. 내부적으로 termios 모듈이 필요해서 Unix에서만 동작합니다.
본문
tty 모듈은 다음 함수들을 정의합니다.
tty.cfmakeraw(mode)
termios.tcgetattr()이 반환하는 것 같은 리스트 형태인 tty 속성 목록 mode를, raw 모드의 tty 속성으로 변환해요.
버전 3.12에서 추가되었습니다.
tty.cfmakecbreak(mode)
termios.tcgetattr()이 반환하는 것 같은 리스트 형태인 tty 속성 목록 mode를, cbreak 모드의 tty 속성으로 변환해요.
이 함수는 mode의 ECHO와 ICANON 로컬 모드 플래그를 지우고, 최소 입력을 지연 없이 1바이트로 설정해요.
버전 3.12에서 추가되었습니다.
버전 3.12.2에서 변경:
ICRNL플래그가 더 이상 지워지지 않습니다. 이는 Linux와 macOS의stty cbreak동작과setcbreak()이 역사적으로 해온 방식과 일치해요.
tty.setraw(fd, when=termios.TCSAFLUSH)
파일 디스크립터 fd의 모드를 raw로 바꿔요. when이 생략되면 기본값 termios.TCSAFLUSH로, termios.tcsetattr()에 전달됩니다. fd를 raw 모드로 설정하기 전에 termios.tcgetattr()의 반환값을 저장했다가 그 값을 반환해요.
버전 3.12에서 변경: 반환값이 이제
None대신 원래 tty 속성입니다.
tty.setcbreak(fd, when=termios.TCSAFLUSH)
파일 디스크립터 fd의 모드를 cbreak로 바꿔요. when이 생략되면 기본값 termios.TCSAFLUSH로, termios.tcsetattr()에 전달됩니다. fd를 cbreak 모드로 설정하기 전에 termios.tcgetattr()의 반환값을 저장했다가 그 값을 반환해요.
이 함수는 ECHO와 ICANON 로컬 모드 플래그를 지우고, 최소 입력을 지연 없이 1바이트로 설정해요.
버전 3.12에서 변경: 반환값이 이제
None대신 원래 tty 속성입니다.버전 3.12.2에서 변경:
ICRNL플래그가 더 이상 지워지지 않습니다. 이로써 파이썬 3.11 이하의 동작이 복원되고, Linux·macOS·BSD가 cbreak 모드에 관해 각자의 stty(1) 매뉴얼에 서술한 내용과도 일치합니다.
참고: 모듈
termios— 저수준 터미널 제어 인터페이스.