当前位置: 技术问答>linux和unix
select的問題和keyboard訊息
来源: 互联网 发布时间:2016-03-01
本文导语: FD_ZERO(&allset); FD_SET(fileno(stdin), &allset); while(1) { rset=allset; tv.tv_sec = 3; tv.tv_usec = 0; ret = select(1, &rset, NULL, NULL, &tv); if(FD_ISSET(0, &rset)) ...
FD_ZERO(&allset);
FD_SET(fileno(stdin), &allset);
while(1)
{
rset=allset;
tv.tv_sec = 3;
tv.tv_usec = 0;
ret = select(1, &rset, NULL, NULL, &tv);
if(FD_ISSET(0, &rset))
{
printf("testn");
}
}
為什麼當按下keyboard任意鍵時會print test,但卻變成一直print test
不會停止,該怎麼清空keyboard訊息呢
thx
FD_SET(fileno(stdin), &allset);
while(1)
{
rset=allset;
tv.tv_sec = 3;
tv.tv_usec = 0;
ret = select(1, &rset, NULL, NULL, &tv);
if(FD_ISSET(0, &rset))
{
printf("testn");
}
}
為什麼當按下keyboard任意鍵時會print test,但卻變成一直print test
不會停止,該怎麼清空keyboard訊息呢
thx
|
if(FD_ISSET(0, &rset))
{
getchar();
printf("testn");
}
|
select只是检查在指定的流上是否允许读/写/错误发生,检查到了有数据可以读,如故你没把这数据读走,那下次检查时,还是认为有数据可以读.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。