2016-08-29 13 views
1

내가 조사한 바로는 terminfo/termcapioctl은 터미널 화면에서 (x, y) 위치의 문자를 쿼리 할 수 ​​없습니다. 이는 다음과 같은 이유로 인해 예상치 못한 결과를 초래합니다.터미널 화면의 문자 읽기

  • 단말기가 양방향으로 두 가지의 통신을 의미 - 단자

입력을 읽을 수

  • 하나의 단말기 (예를 들어 tput co, tput li)에서 화면 크기. 주어진 위치에서 문자를 쿼리 할 수있는 방법이 있습니까? 예 : *inch*, *in_wch* curses 함수 (curses 창에서만 작동)? ("예상치 못한"하지 않음) 예정되어

  • 답변

    1

    :

    • tput 터미널 데이터베이스 (고정) 및 운영 체제 (변경)의 조합에서 값을 제공하지만, 수행은 터미널을 요구하지 . 터미널로부터의 판독은 장치로부터의 입력 스트림 (어떤 터미널이하도록 설계되었는지)에 의한 것이다.

    일부 (전부는 아님) 터미널은 커서가있는 터미널을 묻는 이스케이프 시퀀스를 지원합니다. resize 프로그램은이를 사용하여 화면 크기를 가져옵니다. 그러나 매뉴얼 페이지에서 언급 한 바와 같이이 터미널에 의존하는 것으로 알려져 있음을 유의하십시오 :

    -s[행 열]
    이 옵션은 콘솔 이스케이프 시퀀스를 나타냅니다 VT100 스타일의 xterm 이스케이프 코드 대신 이 사용됩니다.

    단순히 화면에서 문자를 읽는 이스케이프 시퀀스를 지원하는 단말기는 거의 없습니다. 모두가 모르는 사이에 화면 —을 읽을 수있는 프로그램의 개념을 좋아하는 것은 아닙니다.