首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

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

2012-03-04 
select的問題和keyboard訊息FD_ZERO(&allset)FD_SET(fileno(stdin), &allset)while(1){rsetallsettv.t

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

热点排行