title: Is 0 or 1 valid return values for socket() function call
body: <p>Could the socket function call in C return 0 or 1 as the value for the socket descriptor?</p>
  
  <pre><code>   int socket(int domain, int type, int protocol);
  </code></pre>
  
  <p>According to the man page I have:  </p>
  
  <pre><code>RETURN VALUE
     -1 is returned if an error occurs; otherwise the  return  value  is  a
     descriptor referencing the socket.
  </code></pre>
  
  <p>It seems like it could, or at least the man page makes no mention of any reserved values.  Is it written somewhere else that valid socket descriptors need to be 2 or greater?</p>
  
  <p>I'm specifically running on a linux 2.4.22 kernel, but I'm curious to know for any unix based implementation of socket.</p>