|
发表于 2007-1-1 22:23:31
|
显示全部楼层
http://www.linuxforum.net/forum/ ... mp;o=all&fpart=
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
static struct termios originalTermParam;
static void set_keypress ( void )
{
struct termios currentTermParam;
tcgetattr( 0, &originalTermParam );
memcpy( ¤tTermParam, &originalTermParam, sizeof( struct termios ) );
/* Disable canonical mode, and set buffer size to 1 byte */
currentTermParam.c_lflag &= ~ICANON;
currentTermParam.c_lflag &= ~ECHO;
currentTermParam.c_cc[ VTIME ] = 255;
currentTermParam.c_cc[VMIN] = 1;
tcsetattr( 0, TCSANOW, ¤tTermParam );
return;
} /* end of set_keypress */
void reset_keypress ( void )
{
tcsetattr( 0, TCSANOW, &originalTermParam );
return;
} /* end of reset_keypress */
int main ( void )
{
puts( "main start" );
set_keypress();
while ( 1 )
{
if ( getchar() == ( int )'q' )
{
break;
}
}
reset_keypress();
puts( "main stop" );
return( EXIT_SUCCESS );
} /* end of main */ |
|