zoukankan      html  css  js  c++  java
  • 非阻塞socket中read、write返回值

    read返回值

    >0   读取数据的长度

    =0   接收到对端发送的FIN,表示对端的写端关闭。

    <0   如果errno=EINTR。收到信号并从信号处理函数返回时,慢系统调用会返回并设置errno为EINTR,应该重新调用read。

        如果errno=EAGAIN。表示当前暂时没有数据可读,应该稍后读取。

           其它一般表示出错。

    write返回值

    >0   接收数据的长度

    <0   如果errno=EINTR。收到信号并从信号处理函数返回时,慢系统调用会返回并设置errno为EINTR,应该重新调用write。

        如果errno=EAGAIN。可能是缓冲区已满,应该稍后发送。

           其它一般表示出错。

    ps:如果向已经关闭的对端调用write,系统会向程序发送SIGPIPE信号,该信号默认会退出程序,应该捕获该信号。

  • 相关阅读:
    架构设计-业务逻辑层简述
    大牛的法宝
    架构设计中服务层的简单理解
    架构师都要懂哪些知识
    python 面向对象
    Ubuntu学习
    装饰器
    Py之基础数据类型
    Py之模块
    浏览器环境变量
  • 原文地址:https://www.cnblogs.com/runnyu/p/5054968.html
Copyright © 2011-2022 走看看