select函数原型:
int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set
*errorfds,struct timeval *timeout);
select函数通常有两种不同的用法:
1。用于定时器
用于定时作用时,除timeout外,其它参数设为NULL,timeout是指select的超时时间,不同的设置有不同的状态:
1。timeout设为空指针,则select工作于阻塞模式
2。timeout设为0,则变成一个纯粹的非阻塞函数,不管情况如何都立即返回
3。timeout设为大于0,则select函数在该时间内阻塞,超时时间内有事件发生则返回
关于定时精度问题,网络上有人写过代码进行测试过,发现与usleep等其它函数调用相比,对于HZ为100的节拍,select可以达到最高的精度,但也不超过1个节拍
2。I/O复用
待继
阅读(503) | 评论(0) | 转发(0) |