title: Is the uid_t type signed or unsigned?
body: <p>I know that the standard doesn't say anything about the signedness of <code>uid_t</code> or <code>gid_t</code>.</p>
  <h3>Inconsistency:</h3>
  <p>Page <a href="http://www.gnu.org/software/libc/manual/html_node/Reading-Persona.html" rel="noreferrer">http://www.gnu.org/software/libc/manual/html_node/Reading-Persona.html</a> says:</p>
  <blockquote>
  <p>In the GNU C Library, this is an alias for <strong>unsigned int</strong>.</p>
  </blockquote>
  <p>But <code>man setreuid</code> says:</p>
  <blockquote>
  <p>Supplying a value of <strong>-1</strong> for either the real or effective user ID forces the system to leave that ID unchanged.</p>
  </blockquote>
  <h3>Questions:</h3>
  <ol>
  <li><p>So, is <code>uid_t</code> signed or unsigned in the GNU Library?</p>
  </li>
  <li><p>How can I supply <code>-1</code> if <code>uid_t</code> and <code>gid_t</code> are unsigned (<code>-1</code> will be converted to <code>0xFFFFFFFF</code>)?</p>
  </li>
  </ol>