title: behaviour of fseek and SEEK_END
body: <p>If I have a text file with the following content opened as binary </p>
  
  <pre><code>1234567890
  </code></pre>
  
  <p>a call like this:</p>
  
  <pre><code>fseek(fp, 5L, SEEK_SET);
  </code></pre>
  
  <p>give me 6 when I call <code>(char)fgetc(fp)</code> because I offset 5 byte from byte 0 (not start from 1 but from 2)</p>
  
  <p>but If I do:</p>
  
  <pre><code>fseek(fp, -3L, SEEK_END);
  </code></pre>
  
  <p>give me 8 and not 7 when I call <code>(char)fgetc(fp)</code>.</p>
  
  <p>Why? It seems as with <code>SEEK_END</code> the offset doesn't start from the previous byte after the last.</p>