title: What is the purpose of having both the paramers size and nmemb in `fwrite()`?
body: <p><code>fwrite()</code> is declared as this.</p>
  
  <pre><code>size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
  </code></pre>
  
  <p>But the actual number of bytes written is just size * nmemb. So why not just specify the number of bytes? Why it is necessary to specify both size and nmemb? Thanks.</p>