title: FSEEK offset accepts more than what it should accept
body: <p>Following the <a href="http://port70.net/~nsz/c/c11/n1570.html#7.21.9.2" rel="nofollow noreferrer">Specification:</a></p>
  
  <blockquote>
    <p>For a text stream, either offset shall be zero, or offset shall be a value returned by an earlier successful call to the ftell function on a stream associated with the same file and whence shall be SEEK_SET.</p>
  </blockquote>
  
  <p>I understand that <code>offset</code> must be the retun value of a <code>ftell</code> function, or 0, and <code>whence</code> must be <code>SEET_SET</code> (or 0). But I used some integers as offsets and different <code>SEEK_...</code> and it seemed to work well.</p>
  
  <p>For example, these worked:</p>
  
  <pre><code>fseek(file, 4, SEEK_CUR);
  fseek(file, -1, SEEK_END);
  fseek(file, 0, SEEK_CUR);
  </code></pre>
  
  <p>When I read the specification it seems to me that it should not work. I tried to use fseek this way many times, and it never failed. Why does it work, what point am I not getting?</p>