<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Apache Portable Runtime: User and Group ID Services</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.9.1 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <h1>User and Group ID Services<br> <small> [<a class="el" href="group__APR.html">Apache Portability Runtime library</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga8">apr_uid_compare</a>(left, right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga9">apr_gid_compare</a>(left, right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)</td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef uid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga0">apr_uid_t</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef gid_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga1">apr_gid_t</a></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga2">apr_uid_current</a> (<a class="el" href="group__apr__user.html#ga0">apr_uid_t</a> *userid, <a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> *groupid, <a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga3">apr_uid_name_get</a> (char **username, <a class="el" href="group__apr__user.html#ga0">apr_uid_t</a> userid, <a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga4">apr_uid_get</a> (<a class="el" href="group__apr__user.html#ga0">apr_uid_t</a> *userid, <a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> *groupid, const char *username, <a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga5">apr_uid_homepath_get</a> (char **dirname, const char *username, <a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga6">apr_gid_name_get</a> (char **groupname, <a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> groupid, <a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__user.html#ga7">apr_gid_get</a> (<a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> *groupid, const char *groupname, <a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> *p)</td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="ga9" doxytag="apr_user.h::apr_gid_compare"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define apr_gid_compare </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">left, <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>right </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)</td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Compare two group identifiers for equality. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>left</em> </td><td>One gid to test </td></tr> <tr><td valign="top"></td><td valign="top"><em>right</em> </td><td>Another gid to test </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>APR_SUCCESS if the apr_gid_t strutures identify the same group, APR_EMISMATCH if not, APR_BADARG if an apr_gid_t is invalid. </dd></dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga8" doxytag="apr_user.h::apr_uid_compare"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define apr_uid_compare </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">left, <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>right </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)</td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Compare two user identifiers for equality. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>left</em> </td><td>One uid to test </td></tr> <tr><td valign="top"></td><td valign="top"><em>right</em> </td><td>Another uid to test </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>APR_SUCCESS if the apr_uid_t strutures identify the same user, APR_EMISMATCH if not, APR_BADARG if an apr_uid_t is invalid. </dd></dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="ga1" doxytag="apr_user.h::apr_gid_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">typedef gid_t <a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Structure for determining group ownership. </td> </tr> </table> <a class="anchor" name="ga0" doxytag="apr_user.h::apr_uid_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">typedef uid_t <a class="el" href="group__apr__user.html#ga0">apr_uid_t</a> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Structure for determining user ownership. </td> </tr> </table> <hr><h2>Function Documentation</h2> <a class="anchor" name="ga7" doxytag="apr_user.h::apr_gid_get"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> apr_gid_get </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> * </td> <td class="mdname" nowrap> <em>groupid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>groupname</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> * </td> <td class="mdname" nowrap> <em>p</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get the groupid for a specified group name <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>groupid</em> </td><td>Pointer to the group id (on output) </td></tr> <tr><td valign="top"></td><td valign="top"><em>groupname</em> </td><td>The group name to look up </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The pool from which to allocate the string </td></tr> </table> </dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga6" doxytag="apr_user.h::apr_gid_name_get"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> apr_gid_name_get </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">char ** </td> <td class="mdname" nowrap> <em>groupname</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> </td> <td class="mdname" nowrap> <em>groupid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> * </td> <td class="mdname" nowrap> <em>p</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get the group name for a specified groupid <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>groupname</em> </td><td>Pointer to new string containing group name (on output) </td></tr> <tr><td valign="top"></td><td valign="top"><em>groupid</em> </td><td>The groupid </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The pool from which to allocate the string </td></tr> </table> </dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga2" doxytag="apr_user.h::apr_uid_current"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> apr_uid_current </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group__apr__user.html#ga0">apr_uid_t</a> * </td> <td class="mdname" nowrap> <em>userid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> * </td> <td class="mdname" nowrap> <em>groupid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> * </td> <td class="mdname" nowrap> <em>p</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get the userid (and groupid) of the calling process <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>userid</em> </td><td>Returns the user id </td></tr> <tr><td valign="top"></td><td valign="top"><em>groupid</em> </td><td>Returns the user's group id </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The pool from which to allocate working space </td></tr> </table> </dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga4" doxytag="apr_user.h::apr_uid_get"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> apr_uid_get </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group__apr__user.html#ga0">apr_uid_t</a> * </td> <td class="mdname" nowrap> <em>userid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__user.html#ga1">apr_gid_t</a> * </td> <td class="mdname" nowrap> <em>groupid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>username</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> * </td> <td class="mdname" nowrap> <em>p</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get the userid (and groupid) for the specified username <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>userid</em> </td><td>Returns the user id </td></tr> <tr><td valign="top"></td><td valign="top"><em>groupid</em> </td><td>Returns the user's group id </td></tr> <tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>The username to lookup </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The pool from which to allocate working space </td></tr> </table> </dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga5" doxytag="apr_user.h::apr_uid_homepath_get"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> apr_uid_homepath_get </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">char ** </td> <td class="mdname" nowrap> <em>dirname</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>username</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> * </td> <td class="mdname" nowrap> <em>p</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get the home directory for the named user <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dirname</em> </td><td>Pointer to new string containing directory name (on output) </td></tr> <tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>The named user </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The pool from which to allocate the string </td></tr> </table> </dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga3" doxytag="apr_user.h::apr_uid_name_get"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__apr__errno.html#ga0">apr_status_t</a> apr_uid_name_get </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">char ** </td> <td class="mdname" nowrap> <em>username</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__user.html#ga0">apr_uid_t</a> </td> <td class="mdname" nowrap> <em>userid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__apr__pools.html#ga0">apr_pool_t</a> * </td> <td class="mdname" nowrap> <em>p</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get the user name for a specified userid <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>Pointer to new string containing user name (on output) </td></tr> <tr><td valign="top"></td><td valign="top"><em>userid</em> </td><td>The userid </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The pool from which to allocate the string </td></tr> </table> </dl> <dl compact><dt><b>Remarks:</b></dt><dd>This function is available only if APR_HAS_USER is defined. </dd></dl> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Sun Mar 20 19:52:28 2005 for Apache Portable Runtime by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> </body> </html>