select的問題和keyboard訊息解决方案

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

C/C++ code

if(FD_ISSET(0, &rset))
{
[color=#FF0000]getchar();[/color]
printf("test\n");
}


select只是检查在指定的流上是否允许读/写/错误发生,检查到了有数据可以读,如故你没把这数据读走,那下次检查时,还是认为有数据可以读.

select的問題和keyboard訊息解决方案

相关文章:

你感兴趣的文章:

标签云: