title: Reading from stderr instead of stdin
body: <p>I ran into code like this in the wild, and I'm wondering why this works.
  The code reads from stderr (fd==2) instead of stdin (fd==0). The wierd thing is this actually works somewhat. You can read typing at the console, but not piped input. Any idea what is going on here? </p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;unistd.h&gt;
  int main(){
     char buf[15];
     int nchars=read(2,buf,15);
     printf("%d '%s'\n",nchars,buf);
  }
  </code></pre>