리눅스에서 방향키 아스키코드 값 질문 드려요..
겨울
질문 제목 : 리눅스에서 방향키 아스키코드 값 질문 드려요..질문 요약 :윈도우에서 키보드 방향키 아스키코드를 찍어보면 224/72, 224/75 이런식으로 2개 키가 입력되어 출력이 되는데요..
리눅스에서 찍어보면,, 27/91/68 이런식으로 찍히네요..
리눅스에서 사용자가 방향키를 입력하였을때, 처리하는 루틴을 집어넣으려고 하는데,,
어떻게 구분해야 할지 질문 드립니다..
윈도우와 리눅스에서 아스키코드를 찾으려고 테스트한 코드 입니다.
1. 윈도우
#include conio.h
int main()
{
int c;
while (c = getch())
{
printf(num : [%d]\n, c);
}
return 0;
}2. 리눅스
#include stdio.h
#include stdlib.h
#include termios.h
#include unistd.h
#include netinet/in.h
#include arpa/inet.h
#include sys/socket.h
#include sys/param.h
int _getch( ) {
struct termios oldt, newt;
char ch = 0;
tcgetattr( stdin_fileno, &oldt );
newt = oldt;
newt.c_lflag &= ~( icanon | echo);
newt.c_cc[vmin] = 1;
newt.c_cc[vtime] = 0;
tcsetattr( stdin_fileno, tcsanow, &newt );
ch = getchar();
tcsetattr( stdin_fileno, tcsanow, &oldt );
return ch;
}
int main()
{
char c = 0;
while (c = _getch())
{
if (c == 113) break;
printf(%c%d\n, c, c);
}
return 0;
}
-
중독적
리눅스 콘솔 프로그래밍을 할때 curses 라이브러리가 정말 유용합니다 논리적인 윈도우(창) 도 지원하고 컬러도 다양하게 지원합니다. 또 마우스 버튼까지 입력받을 수 있고 윈도 conio.h 에 선언된 getch 함수도 사용가능 합니다. 원하시는 방향키 코드값이 리눅스는 3번씩 눌려졋던걸로 기억합니다(페도라)
-
휑하니
원시적으로 처리하지 마시고 curses로 처리하세요.