当前位置: 技术问答>linux和unix
读取pc键盘码
来源: 互联网 发布时间:2016-09-21
本文导语: // 初始化键盘控制指令 tcgetattr(fileno(stdin),&m_OldTermios); tcgetattr(fileno(stdin),&m_NewTermios); m_NewTermios.c_lflag &= ~(ICANON|ECHO|ISIG); m_NewTermios.c_iflag = 0; m_NewTermios.c_cc[VMIN] = 0; if ( g_Sys.IsPCON() ) m_NewTermios.c_cc[VT...
// 初始化键盘控制指令
tcgetattr(fileno(stdin),&m_OldTermios);
tcgetattr(fileno(stdin),&m_NewTermios);
m_NewTermios.c_lflag &= ~(ICANON|ECHO|ISIG);
m_NewTermios.c_iflag = 0;
m_NewTermios.c_cc[VMIN] = 0;
if ( g_Sys.IsPCON() )
m_NewTermios.c_cc[VTIME] = 1;///////////////延时3行,1不行
else
m_NewTermios.c_cc[VTIME] = 0;//延时0
tcsetattr(fileno(stdin),TCSAFLUSH,&m_NewTermios);
ioctl(fileno(stdin),KDGKBMODE,&m_nOldMode);
ioctl(fileno(stdin),KDSKBMODE,K_RAW);
//读
while(1)
{
unsigned short key = NONE_KEY;
read(fileno(stdin),&key,sizeof(key);
}
以前读上来的key 是0-0xff的,(2.4), 现在我用FC12的系统读上来是>0xff, 有时甚至大于0xfff
而且延时以前1, 现在必须改到3才可以,否则经常出错,如按3,有时会显示为5,两个键一起按,有时就>0xfff
|
感觉是参数设置的问题,系统应该是比较稳定的,不然早被废除了