본문 바로가기
프로그래밍/라이브러리

[ncurses] 펑션키 입력 설정

by 써드아이 2014. 3. 11.

ncurses로 간단한 테스트 프로그램을 작성숭인데 키입력에서 상당히 애를 먹었다.


F1~F5 까지의 키와 bacpspace, tab, enter 등의 키를 인식하지 못 하는 사태가 발생..

웃기는건 콘솔상에서는 잘 인식하는데 터미널 프로그램(putty) 로 접속하면 인식을 못 하는것이다.

무슨 이유일까 한참을 찾아봤는데 해결을 못 하고 있다가

우연히 확인한 터미널 접속과 콘솔 상의 환경 변수값이 틀린걸 발견!!!

혹시 이것 때문인가 싶어서 바로 확인하니 잘 동작 한다..


역시나...


문제를 일으킨 환경 변수는 TERM

콘솔 상에서는 이 TERM 변수 값이 linux로 들어가 있는데 putty로 접속하니까 xterm으로 바뀌는 것이다.

이걸 조정해주니까 아주 쉽게 해결...


아예 .bashrc 등에 설정해 놓기는 왠지 좀 그렇고 프로그램 상에서 해결해보자..



char *org_env = getenv( "TERM" );

setenv( "TERM", "linux", 1, );




setenv( "TERM", org_env, 1, );


return 0;



메인함수에서 위와 같이 해주면

프로그램이 동작할 때문 적용된다.!!!