描述符就绪条件

Posted by ysd on July 31, 2016
套接字准备好读
  1. 该套接字接受缓冲区的数据字节数>=低水位标记的当前值(默认1)。这时读套接字将不阻塞并返回大于0的值
  2. 该连接的读半部关闭(也就是接受了FIN的TCP连接)。这时读套接字将不阻塞并返回0
  3. 是一个监听套接字且已完成的连接数不为0。对这样的套接字accept通常不会阻塞
  4. 其上有一个套接字错误待处理。这时读套接字将不阻塞并返回-1,同时设置errno。
套接字准备好写
  1. 同套接字准备好读1
  2. 该连接的写半部关闭。对这样的套接字啊的写操作将产生SIGPIPE信号,该信号的默认处理为终止进程
  3. 使用非阻塞式connect的套接字已建立连接,或者connect已经失败
  4. 同套接字准备好读1

注意:当某个套接字上发生错误时,它将select标记为即可读又可写。