ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스로 제작한 미니게임 (C언어) - 2 (getch, kbhit, sleep)
    과제 결과물 2018. 6. 8. 11:16


    2018-06-02

    (제작 소요 시간 : 4시간)


    **** Window 환경 -> 리눅스 환경

     - 키보드 입력을 읽어오는 getch() 에 해당하는 함수가 gcc library 에는 존재하지 않는다.

     - PC 환경이 아닌 임베디드 환경에서 작업 할 시에는 kbhit()에 해당하는 함수가 존재하지 않는다.


    1. 리눅스에서 사용한 주요 함수 (_kbhit, _getch)


    #include <sys/select.h>

    #include <termios.h>


    int linux_kbhit(void)

    {

    struct termios oldt, newt;

    int ch;


    tcgetattr(STDIN_FILENO, &oldt);

    newt = oldt;


    newt.c_lflag &= ~(ICANON | ECHO);

    tcsetattr(STDIN_FILENO, TCSANOW, &newt);


    ch = getchar();


    tcsetattr(STDIN_FILENO, TCSANOW, &oldt);


    return ch;

    }


    int linux_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;

    }


    2. 리눅스와 이름이 다른 함수 (Sleep)

    #include <unistd.h>


    window : 

    - Sleep(1000)

    1초의 딜레이, 대문자


    linux : 

    - sleep(1)

    1초의 딜레이, 소문자

    - usleep(1000000)

    1초의 딜레이, micro초를 나타냄

     




     

    '과제 결과물' 카테고리의 다른 글

    아두이노 우노 알람시계  (0) 2018.06.06
    리눅스로 제작한 미니게임 (C언어)  (0) 2018.06.06
Designed by Tistory.