日期:2014-05-16  浏览次数:20543 次

linux下的非阻塞读取
如题

当有键按下的时候,返回键值,否则返回没有键按下。

我查了一些资料,说应该用ioctl该成raw流,可是却找不到,应该如何调用。请各位大虾给出段代码。

谢谢。



------解决方案--------------------
fd_set rfds;
struct timeval tv;
int retval;

FD_ZERO(&rfds);
FD_SET(fileno(stdin), &rfds);

/* Wait up to five seconds. */
tv.tv_sec = 5;
tv.tv_usec = 0;

retval = select(1, &rfds, NULL, NULL, &tv);
if (retval == -1)
perror( "select() ");
else if (retval)
printf( "Data is available now.\n ");
else
printf( "No data within five seconds.\n ");