키보드 입력을 화면에 출력하지 않고 읽어오는 getch() 에 해당하는 함수가 gcc library 에는 존재하지 않습니다.
따라서 터미널의 설정을 변경하여 터미널 echo와 canonical 모드를 끄고 입력 버퍼를 1로 만든 후 키보드 입력을 읽고 터미널 설정을 원래대로 복원하는 방식으로 구현하여 사용할 수 있습니다.
#include <termio.h> int getch(void) { int ch; struct termios old; struct termios new; tcgetattr(0, &old); new = old; new.c_lflag &= ~(ICANON|ECHO); new.c_cc[VMIN] = 1; new.c_cc[VTIME] = 0; tcsetattr(0, TCSAFLUSH, &new); ch = getchar(); tcsetattr(0, TCSAFLUSH, &old); return ch; }
'About 배우고 익히는법 > 펌글' 카테고리의 다른 글
[TCP/IP] signal(SIG_CHLD, SIG_IGN) (0) | 2013.12.31 |
---|---|
[TCP/IP] signal set 관련 함수 (sigemptyset, sigaddset, sigdelset, sigprocmask) (0) | 2013.12.31 |
[Linux] linux에서 getch() 및 kbhit() 사용하기 (0) | 2013.12.31 |
[Linux] Serial-Programming (0) | 2013.12.31 |
Linux] NCURSES란 ? (0) | 2013.12.31 |