读书人

linux下的非阻塞读取,该怎么处理

发布时间: 2012-02-22 19:36:56 作者: rapoo

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 ");

读书人网 >UNIXLINUX

热点推荐