zoukankan      html  css  js  c++  java
  • linxu select 返回值

    曾经写过如上这样的代码,执行时怎么也得不到预想的结果!
    后来,仔细看man select
    On success, select() and pselect() return the number of file descriptors contained in the three returned descriptor sets(that  is,  the  total  number  of  bits  that are set in readfds, writefds, exceptfds) which may be zero if the timeout expires before anything interesting happens.  On error, -1 is returned, and errno is set appropriately;  the  sets  and timeout become undefined, so do not rely on their contents after an error.
    原来第一次select的时候出错了,导致rd_fd和tm(主要是rd_fd)的值 become undefined,进而导致以后的select调用的失败!
    解决办法:
    在1处(while循环内的开头),添加如下代码:
    FD_ZERO(&rd_fd);
    FD_SET(sockfd, &rd_fd);
    tm.tv_sec = 1;
    tm.tv_usec = 0;

  • 相关阅读:
    2019长安大学ACM校赛网络同步赛 J Binary Number(组合数学+贪心)
    棋盘问题
    DP待整理
    Monkey and Banana(DP)
    Ignatius and the Princess IV
    【[kuangbin带你飞]专题十二 基础DP1】Max Sum Plus Plus(DP+滚动数组)
    第三届山东ACM Pick apples
    第三届山东省ACM The Best Seat in ACM Contest
    第三届山东ACM省赛 Pixel density
    第三届山东ACM省赛 n a^o7 !
  • 原文地址:https://www.cnblogs.com/hjslovewcl/p/2314332.html
Copyright © 2011-2022 走看看