본문 바로가기

Study/C C++

kbhit() for Linux

마찬가지로,, kbhit을 대체할수 있는 방법을 찾다가;;

아직 해보지는 않았는데;;; 궁금하시면

#include stdio.h>
#include termios.h>
#include unistd.h>
#include sys/types.h>
#include sys/time.h>

/* This id to hide the character we type and suspend any
prints after dir 1 , displayed ony when dir 0 */
void changemode ( int dir )
{
static struct termios oldt, newt;
if ( dir == 1 )
{
tcgetattr ( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~ ( ICANON | ECHO );
tcsetattr ( STDIN_FILENO, TCSANOW, &newt );
}
else
tcsetattr ( STDIN_FILENO, TCSANOW, &oldt );
}
int kbhit ( void )
{
struct timeval tv;
fd_set rdfs;

tv.tv_sec = 0;
tv.tv_usec = 0;

FD_ZERO ( &rdfs );
FD_SET ( STDIN_FILENO, &rdfs );
// select ( STDIN_FILENO + 1, &rdfs, NULL, NULL, &tv );
select ( STDIN_FILENO + 1, &rdfs, NULL, NULL, NULL );
printf(" After ");
return FD_ISSET ( STDIN_FILENO, &rdfs );

}

int main ( void )
{
int ch;
printf(" Press any Key to continue\n ");
changemode ( 1 );

while ( !kbhit() )
{
// putchar ( '.' );
}
ch = getchar();
printf ( "\nGot %c\n", ch );
changemode ( 0 );
return 0;
}
http://vimtron.blogspot.com/2008/01/kbhit-for-linux.htmlf

'Study > C C++ ' 카테고리의 다른 글

MFC 전역변수 사용하기  (3) 2009.12.20
윈도우 mfc bzero  (0) 2009.12.09
getch() for Linux  (0) 2009.07.03
gcc , clrscr gotoxy  (2) 2009.07.02
온라인 man  (0) 2009.07.02
Bool  (6) 2009.07.02