非阻塞IO出现EAGAIN

1 分钟阅读 155 字 + 85 词
参考答案
操作系统为用户提供非阻塞版本的read:当读取内核缓冲区数据时, 如果没有数据,read会直接返回-1,并将errno的数值设置为EAGAIN。 非阻塞操作通常 会配合循环一起使用 以实现一种同步非阻塞的IO模型。
利用 fcntl可以改变描述符的当前状态,设置非阻塞
recv的最后一个参数标志 可以在不修改已连接套接字的文件属性的情况下,把单个IO操作临时指定为非阻塞,随后执行IO操作,最后关闭非阻塞标志。