博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux errno3的错误总结
阅读量:2506 次
发布时间:2019-05-11

本文共 716 字,大约阅读时间需要 2 分钟。

  • EWOULDBLOCK & EAGAIN

    出现原因:
    1、执行non-blocking I/O(非阻塞操作)而该操作不能完成时,会抛出EAGAIN异常(“there is no data available right now, try again later”)
    2、在非阻塞模式下调用了阻塞操作(如recv),而操作没有正常完成时就会抛出EWOULDBLOCK异常(“your thread would have to block in order to do that”)
    According to IEEE 1003.1, EAGAIN may be the same as EWOULDBLOCK.
    出现场景:
    1、以打开文件时,如果进行都操作而没有数据可读时,程序不会阻塞等待而会返回EAGAIN异常
    2、http请求中,当Content-Length大于真实实体大小时,recv操作最后会没有数据可接受,如果你为socket设置了接受超时,那么recv函数会返回EAGAIN异常
    3、当一个系统调用(比如fork)因为没有足够的资源(比如虚拟内存)而执行失败,返回EAGAIN提示其再调用一次(也许下次就能成功)
    如何处理:
    无需重读或重写,仅需接着执行下次操作。对应非阻塞模式的socket而言,EAGAIN不是错误,因为其不会破坏socket同步,出现该异常时仅需要捕获并提示防止程序崩溃,下次接着recv是没有问题的。

  • EINTR

    出现原因:
    可中断函数被中断信号中断时,会返回EINTR异常(如果没有设置)
    出现场景:
    中断函数被指定的信号中断时会产生
    如何处理:
    仅捕获该异常,下次操作继续即可

待续…

参考

转载地址:http://oghrb.baihongyu.com/

你可能感兴趣的文章
设计模式15_模板
查看>>
海龟交易法则01_玩风险的交易者
查看>>
CTA策略02_boll
查看>>
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>
设计模式19_状态
查看>>
设计模式20_观察者
查看>>
vnpy学习10_常见坑02
查看>>
用时三个月,终于把所有的Python库全部整理了!拿去别客气!
查看>>
pd.stats.ols.MovingOLS以及替代
查看>>
vnpy学习11_增加测试评估指标
查看>>
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
海龟交易法则14_掌控心魔
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>