title: Is it necessary to call `FD_SET` after the calling of `select` with a single FD?
body: <pre><code>//int fd &lt;= socket fd
  timeval tv;
  tv.tv_sec  = 100;
  tv.tv_usec = 0;
  
  fd_set readfds;
  FD_ZERO( &amp;readfds );
  
  FD_SET( fd, &amp;readfds );
  const int iRes = select( fd + 1, &amp;readfds, NULL, NULL, &amp;tv );
  
  if (iRes &gt; 0)
  {
      if (FD_ISSET( fd, &amp;readfds )
      {
          // read from fd            
      }        
  } else {
      // 0: timeout
      // -1: error in select
  }
  </code></pre>
  
  <p>Question: Do I have to use <code>FD_ISSET</code> in above code before I can read from fd?
  Based on my understanding, there is ONLY one fd in the read set and the return value is large than 0 then the passed in <code>fd</code> should be always in the <code>readfds</code>.</p>