select的問題和keyboard訊息
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("test\n");
}
}
為什麼當按下keyboard任意鍵時會print test,但卻變成一直print test
不會停止,該怎麼清空keyboard訊息呢
thx
[解决办法]
if(FD_ISSET(0, &rset)){ [color=#FF0000]getchar();[/color] printf("test\n"); }
[解决办法]
select只是检查在指定的流上是否允许读/写/错误发生,检查到了有数据可以读,如故你没把这数据读走,那下次检查时,还是认为有数据可以读.