Go to the documentation of this file.00001 #include <termios.h>
00002 #include <stdio.h>
00003 #include <sys/select.h>
00004
00005 #ifdef __GNUC__
00006
00010 int _getch(void)
00011 {
00012 struct termios oldt, newt;
00013 int c;
00014
00015 tcgetattr(0, &oldt);
00016 newt = oldt;
00017 newt.c_lflag &= ~(ICANON|ECHO);
00018 tcsetattr(0, TCSANOW, &newt);
00019 c = getchar();
00020 tcsetattr(0, TCSANOW, &oldt);
00021 return c;
00022 }
00023
00028 int _kbhit()
00029 {
00030 struct termios oldt, newt;
00031
00032 struct timeval tv;
00033 fd_set rfd;
00034 tv.tv_sec = 0;
00035 tv.tv_usec = 0;
00036
00037 FD_ZERO(&rfd);
00038 FD_SET(0, &rfd);
00039
00040 tcgetattr(0, &oldt);
00041 newt = oldt;
00042 newt.c_lflag &= ~(ICANON|ECHO);
00043 tcsetattr(0, TCSANOW, &newt);
00044
00045 if (select(1, &rfd, 0, 0, &tv) == -1)
00046 return 0;
00047
00048 tcsetattr(0, TCSANOW, &oldt);
00049
00050 return (FD_ISSET(0, &rfd) != 0);
00051 }
00052 #endif