| 
 | 
 
 
发表于 2004-4-8 12:50:27
|
显示全部楼层
 
 
 
[code:1] 
#include <stdio.h> 
#include <termios.h> 
#include <sys/ioctl.h> 
                                                                                                                                                 
int Get_KeyValue() 
{ 
        struct termios stored_settings; 
        struct termios new_settings; 
        int key_value; 
        int key_press=0; 
                                                                                                                                                 
        tcgetattr(0,&stored_settings); 
        new_settings = stored_settings; 
        new_settings.c_lflag &= (~ICANON); 
        new_settings.c_cc[VTIME] = 0; 
        new_settings.c_cc[VMIN] = 1; 
        tcsetattr(0,TCSANOW,&new_settings); 
                                                                                                                                                 
        ioctl(0,FIONREAD,&key_press); 
        if(key_press) 
        { 
                key_value=getc(_IO_stdin); 
        } 
        else 
        { 
                key_value=0; 
        } 
        return key_value; 
                                                                                                                                                 
        tcsetattr(0,TCSANOW,&stored_settings); 
                                                                                                                                                 
} 
main() 
{ 
        int new_char=0; 
        while(1) 
        { 
                new_char=Get_KeyValue(); 
                if(new_char) 
                { 
                        if(new_char=='q') 
                                break; 
                        printf("you press key:'%c'\n",new_char); 
                } 
                usleep(10000); 
        } 
} 
 
 
 
[/code:1] |   
 
 
 
 |