linux下c语言select函数用法

http://www.linuxdiyf.com/viewarticle.php?id=43658 http://blog.chinaunix.net/u1/55630/showart_510941.html http://blog.163.com/smileface100@126/blog/static/2772087420095103178719/

 

补充下,函数:

int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);

最后一个超时参数,每次都需要重新设置,否则无效

1、

while(1) { timeout.tv_sec=1; timeout.tv_usec=0; FD_ZERO(&readfd); FD_SET(keyboard,&readfd); ret=select(keyboard+1,&readfd,NULL,NULL,&timeout); }

2、

timeout.tv_sec=1; timeout.tv_usec=0; while(1) { FD_ZERO(&readfd); FD_SET(keyboard,&readfd); ret=select(keyboard+1,&readfd,NULL,NULL,&timeout); }

是不一样的。

你可能感兴趣的:(linux下c语言select函数用法)