22019, 1/1101 회원가입  로그인  
   tfvarsity
   http://leedohyeong1.blog.me/
   리눅스에서 getch함수 만들기

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=23480 [복사]


에..강좌까지는 아닌거 같아서, 그냥 자유게시판에 글을 써봅니다.

---------------------------------------------------------------------

제가 예전에 C언어로 간단한 예제를 연습하다,
엔터 값을 받지 않고 실시간으로 키를 입력받는
getch(); 함수를 쓰려고 ㅎㅒㅆ는데.. 함수가 없습니다, 라면서 컴파일 에러가 뜨더라구요?

찾아보니까 리눅스에는 conio헤더가 없어서, 만들어서 써야된다고 하더라구요.

그래서 검색해서 찾아봤습니다.


getch.h 소스
================
#include <stdio.h>
#include <termio.h>
int getch(void){
    int ch;
    struct termios buf, save;
    tcgetattr(0,&save);
    buf = save;
    buf.c_lflag &= ~(ICANON|ECHO);
    buf.c_cc[VMIN] = 1;
    buf.c_cc[VTIME] = 0;
    tcsetattr(0, TCSAFLUSH, &buf);
    ch = getchar();
    tcsetattr(0, TCSAFLUSH, &save);
    return ch;
}
==================

위 소스를 노트패드에 복사하신후 getch.h 로 저장합니다.

위 헤더파일을 처음에는 어떻게 include 파일에 넣나 고민을 했엇습니다.,
아직 컴퓨터에 대해서 아는게 없어서..

하지만 굳이 include 파일에 넣지않고 아무 곳에나 저장하셔두 됩니다.
저장 하신후 vi 로 헤더를 include 하실때
#include <stdio.h>
같이 < > 가 아닌
#include "getch.h"
" " 를 사용해주시면 됩니다.

<> 같은 경우 시스템 경로있는 헤더파일을 불러오는거고

"" 는 지정한경로 에서 불러오는 거라더군요,





  Hit : 20832     Date : 2012/03/27 12:05