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信号,该信号默认会退出程序,应该捕获该信号。

  • 相关阅读:
    231. Power of Two
    204. Count Primes
    205. Isomorphic Strings
    203. Remove Linked List Elements
    179. Largest Number
    922. Sort Array By Parity II
    350. Intersection of Two Arrays II
    242. Valid Anagram
    164. Maximum Gap
    147. Insertion Sort List
  • 原文地址:https://www.cnblogs.com/runnyu/p/5054968.html
Copyright © 2011-2022 走看看