curses 강좌 #4 - curses terminal input option control routines
Programming/curses / 2009. 11. 17. 00:05
curses 터미널 입력 옵션 제어 루틴들 입니다.
ㅁ int cbreak(void) / int nocbreak(void)
cbreak 모드일 경우, 사용자에 의해 문자를 입력하는 즉시 프로그램에서 사용가능하며, erase/kill 과 같은 character-processing 이 수행되지 않습니다.. cbreak 모드가 아닐 경우, 줄 바꿈 또는 캐리지 리턴 입력이 있을 때까지 버퍼에 입력된 문자를 저장합니다.
ㅁ int echo(void) / int noecho(void)
사용자 입력에 대해 화면 출력여부를 설정합니다. 기본적으로 echo 모드로 설정이 되어 있습니다.
ㅁ int halfdelay(int tenths)
half-delay mode 를 설정합니다. cbreak() 함수와 유사하며, 바로 프로그램에서 사용할 수 있습니다.
함수의 인자 tenths는 1/1000 초로 설정을 하며 설정된 값동안 딜레이 후, 값을 반환합니다. (1~255 값을 입력)
ㅁ int intrflush(WINDOW *win, bool bf)
TRUE로 설정하여 활성화시 키보드의 인터럽트 키(interrupt, break, quit ??)를 누르면 모든 입력 큐는 flushing 됩니다.
(사실 번역이 안되서 잘 모르겟네요... -_ㅜ)
ㅁ int keypad(WINDOW *win, bool bf)
사용자의 키패드의 입력을 활성화/비활성화 합니다.
ㅁ int meta(WINDOW *win, bool bf)
Initially, whether the terminal returns 7 or 8 significant bits on input depends on thecontrol mode of the tty driver (see termio(7I)). (무슨 뜻 일까요...)
ㅁ int nodelay(WINDOW *win, bool bf)
getch() 함수를 non-blocking call 합니다. 만약 입력이 없이 준비가 된다면 getch() 함수는 ERR을 반환합니다.
ㅁ int notimeout(WINDOW *win, bool bf)
입력 escape sequence를 해석하는 동안, wgetch() 함수는 다음 문자를 기다리는 동안의 타이머를 설정합니다.
notimeout(win, TRUE) 가 호출되면, wgetch() 함수는 타이머를 설정하지 않습니다.
타이머 제한의 목적은 sequence 간의 기능 키로부터 받은 입력을 차별화 하기 위함 입니다 (???)
ㅁ int raw(void) / int noraw(void)
cbreak() 모드와 유사. 차이점은 interrupt, quit, suspend, flow control 문자들은 생성된 신호를 대신하여 통과되어진다. (????????)
ㅁ void noqiflush(void) / void qiflush(void)
noqiflush() - normal flush of input and output queues associated with the INTR, QUIT and SUSP characters will not be done
qiflush() - 이들 제어 문자를 읽을 때 큐를 flush 할 수 있다.
ㅁ void timeout(int delay) / void wtimeout(WINDOW *win, int delay)
주어진 윈도우에 blocking / non-blocking 모드로 읽기를 설정합니다.
delay가 0일 경우 non-blocking 모드로 읽어들이며, delay가 양수이면 delay 시간만큼 delay 됩니다.
ㅁ int typeahead(int fildes)
파일 디스크립터 flides는 typeahead를 대신 확인하는데 사용합니다. flides가 -1이면 typeahead를 확인하지 않고 완료합니다.
cbreak 모드일 경우, 사용자에 의해 문자를 입력하는 즉시 프로그램에서 사용가능하며, erase/kill 과 같은 character-processing 이 수행되지 않습니다.. cbreak 모드가 아닐 경우, 줄 바꿈 또는 캐리지 리턴 입력이 있을 때까지 버퍼에 입력된 문자를 저장합니다.
ㅁ int echo(void) / int noecho(void)
사용자 입력에 대해 화면 출력여부를 설정합니다. 기본적으로 echo 모드로 설정이 되어 있습니다.
ㅁ int halfdelay(int tenths)
half-delay mode 를 설정합니다. cbreak() 함수와 유사하며, 바로 프로그램에서 사용할 수 있습니다.
함수의 인자 tenths는 1/1000 초로 설정을 하며 설정된 값동안 딜레이 후, 값을 반환합니다. (1~255 값을 입력)
ㅁ int intrflush(WINDOW *win, bool bf)
TRUE로 설정하여 활성화시 키보드의 인터럽트 키(interrupt, break, quit ??)를 누르면 모든 입력 큐는 flushing 됩니다.
(사실 번역이 안되서 잘 모르겟네요... -_ㅜ)
ㅁ int keypad(WINDOW *win, bool bf)
사용자의 키패드의 입력을 활성화/비활성화 합니다.
ㅁ int meta(WINDOW *win, bool bf)
Initially, whether the terminal returns 7 or 8 significant bits on input depends on thecontrol mode of the tty driver (see termio(7I)). (무슨 뜻 일까요...)
ㅁ int nodelay(WINDOW *win, bool bf)
getch() 함수를 non-blocking call 합니다. 만약 입력이 없이 준비가 된다면 getch() 함수는 ERR을 반환합니다.
ㅁ int notimeout(WINDOW *win, bool bf)
입력 escape sequence를 해석하는 동안, wgetch() 함수는 다음 문자를 기다리는 동안의 타이머를 설정합니다.
notimeout(win, TRUE) 가 호출되면, wgetch() 함수는 타이머를 설정하지 않습니다.
타이머 제한의 목적은 sequence 간의 기능 키로부터 받은 입력을 차별화 하기 위함 입니다 (???)
ㅁ int raw(void) / int noraw(void)
cbreak() 모드와 유사. 차이점은 interrupt, quit, suspend, flow control 문자들은 생성된 신호를 대신하여 통과되어진다. (????????)
ㅁ void noqiflush(void) / void qiflush(void)
noqiflush() - normal flush of input and output queues associated with the INTR, QUIT and SUSP characters will not be done
qiflush() - 이들 제어 문자를 읽을 때 큐를 flush 할 수 있다.
ㅁ void timeout(int delay) / void wtimeout(WINDOW *win, int delay)
주어진 윈도우에 blocking / non-blocking 모드로 읽기를 설정합니다.
delay가 0일 경우 non-blocking 모드로 읽어들이며, delay가 양수이면 delay 시간만큼 delay 됩니다.
ㅁ int typeahead(int fildes)
파일 디스크립터 flides는 typeahead를 대신 확인하는데 사용합니다. flides가 -1이면 typeahead를 확인하지 않고 완료합니다.