select多路事件分离函数

函数原型:

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

 

 nfds为readfds, writefds, exceptfds中的fd最大值加1。

 

timeout的三种情况:

1. NULL

   永远等待

2. timeout->tv_sec == 0 && timeout->tv_usec == 0

   完全不等待

3. timeout->tv_sec != 0 || timeout->tv_usec != 0

    等待特定的秒数和微妙数

 

返回值的三种情况:

1. -1

   发生错误, errno被设置

2. 0

   等待超时

3. >0

   已经准备好的事件数

你可能感兴趣的:(Linux学习笔记)