KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /usr/share/devhelp/books/dbus/api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/devhelp/books/dbus/api/group__DBusSysdeps.html
<!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>D-Bus: Internal system-dependent API</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul></div>
<h1>Internal system-dependent API<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1>Internal system-dependent API available on UNIX and Windows.  
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusAtomic.html">DBusAtomic</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An atomic integer safe to increment or decrement from multiple threads.  <a href="structDBusAtomic.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusPollFD.html">DBusPollFD</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A portable struct pollfd wrapper.  <a href="structDBusPollFD.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusPipe.html">DBusPipe</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusStat.html">DBusStat</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Portable struct with stat() results.  <a href="structDBusStat.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g82deb666b1c07aa5d0822137521994e9"></a><!-- doxytag: member="DBusSysdeps::_DBUS_GNUC_PRINTF" ref="g82deb666b1c07aa5d0822137521994e9" args="(format_idx, arg_idx)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g82deb666b1c07aa5d0822137521994e9">_DBUS_GNUC_PRINTF</a>(format_idx, arg_idx)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">used to tell gcc about printf format strings <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5615583c727831b5e597f675427802a4"></a><!-- doxytag: member="DBusSysdeps::_DBUS_GNUC_NORETURN" ref="g5615583c727831b5e597f675427802a4" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g5615583c727831b5e597f675427802a4">_DBUS_GNUC_NORETURN</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">used to tell gcc about functions that never return, such as <a class="el" href="group__DBusSysdeps.html#g83c51771d3c4e612522bd5ad72e6ad7a">_dbus_abort()</a> <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4eb5f05dd6ad89caa4b0340e1cf0b8d9"></a><!-- doxytag: member="DBusSysdeps::DBUS_PID_UNSET" ref="g4eb5f05dd6ad89caa4b0340e1cf0b8d9" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g4eb5f05dd6ad89caa4b0340e1cf0b8d9">DBUS_PID_UNSET</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="group__DBusSysdeps.html#g1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a>) -1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">an invalid PID used to represent an uninitialized dbus_pid_t field <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3d2f3fb32bb759cabe362ca2de383f7d"></a><!-- doxytag: member="DBusSysdeps::DBUS_UID_UNSET" ref="g3d2f3fb32bb759cabe362ca2de383f7d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g3d2f3fb32bb759cabe362ca2de383f7d">DBUS_UID_UNSET</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>) -1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">an invalid UID used to represent an uninitialized dbus_uid_t field <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g768a080926a119a6131083facc0bd42b"></a><!-- doxytag: member="DBusSysdeps::DBUS_GID_UNSET" ref="g768a080926a119a6131083facc0bd42b" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g768a080926a119a6131083facc0bd42b">DBUS_GID_UNSET</a>&nbsp;&nbsp;&nbsp;((<a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a>) -1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">an invalid GID used to represent an uninitialized dbus_gid_t field <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf4553a43e3b8c0e43d9148a00dcc3fa4"></a><!-- doxytag: member="DBusSysdeps::DBUS_PID_FORMAT" ref="gf4553a43e3b8c0e43d9148a00dcc3fa4" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gf4553a43e3b8c0e43d9148a00dcc3fa4">DBUS_PID_FORMAT</a>&nbsp;&nbsp;&nbsp;&quot;%lu&quot;</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">an appropriate printf format for dbus_pid_t <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb657f0434f01b463891942f373f7b4a1"></a><!-- doxytag: member="DBusSysdeps::DBUS_UID_FORMAT" ref="gb657f0434f01b463891942f373f7b4a1" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gb657f0434f01b463891942f373f7b4a1">DBUS_UID_FORMAT</a>&nbsp;&nbsp;&nbsp;&quot;%lu&quot;</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">an appropriate printf format for dbus_uid_t <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gaab5918b2ae57886d9783df09bd61c7e"></a><!-- doxytag: member="DBusSysdeps::DBUS_GID_FORMAT" ref="gaab5918b2ae57886d9783df09bd61c7e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaab5918b2ae57886d9783df09bd61c7e">DBUS_GID_FORMAT</a>&nbsp;&nbsp;&nbsp;&quot;%lu&quot;</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">an appropriate printf format for dbus_gid_t <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g96b5ba58b9939d789bfece0d9bb82f41"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLIN" ref="g96b5ba58b9939d789bfece0d9bb82f41" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g96b5ba58b9939d789bfece0d9bb82f41">_DBUS_POLLIN</a>&nbsp;&nbsp;&nbsp;0x0001</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">There is data to read. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1db7d09a41912c10978c6a4955d9a9d2"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLPRI" ref="g1db7d09a41912c10978c6a4955d9a9d2" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g1db7d09a41912c10978c6a4955d9a9d2">_DBUS_POLLPRI</a>&nbsp;&nbsp;&nbsp;0x0002</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">There is urgent data to read. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0cb1ace07be145e0b908687e99b5f161"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLOUT" ref="g0cb1ace07be145e0b908687e99b5f161" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g0cb1ace07be145e0b908687e99b5f161">_DBUS_POLLOUT</a>&nbsp;&nbsp;&nbsp;0x0004</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writing now will not block. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g231164196ff407eccb732452a2d36468"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLERR" ref="g231164196ff407eccb732452a2d36468" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g231164196ff407eccb732452a2d36468">_DBUS_POLLERR</a>&nbsp;&nbsp;&nbsp;0x0008</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Error condition. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6f08232c1f943313e3eefd7de8f3592f"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLHUP" ref="g6f08232c1f943313e3eefd7de8f3592f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g6f08232c1f943313e3eefd7de8f3592f">_DBUS_POLLHUP</a>&nbsp;&nbsp;&nbsp;0x0010</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Hung up. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g83bf3d24f3a1a853dda794835c39fc6f"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLNVAL" ref="g83bf3d24f3a1a853dda794835c39fc6f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g83bf3d24f3a1a853dda794835c39fc6f">_DBUS_POLLNVAL</a>&nbsp;&nbsp;&nbsp;0x0020</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid request: fd not open. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g50e1eddfbce31548ca2c50ca7b9ebf35"></a><!-- doxytag: member="DBusSysdeps::_DBUS_BYTE_OF_PRIMITIVE" ref="g50e1eddfbce31548ca2c50ca7b9ebf35" args="(p, i)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a>(p, i)&nbsp;&nbsp;&nbsp;(((const char*)&amp;(p))[(i)])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Casts a primitive C type to a byte array and then indexes a particular byte of the array. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gc8269b795461ee42004b65734ce89e0b">_DBUS_DOUBLES_BITWISE_EQUAL</a>(a, b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">On x86 there is an 80-bit FPU, and if you do "a == b" it may have a or b in an 80-bit register, thus failing to compare the two 64-bit doubles for bitwise equality.  <a href="#gc8269b795461ee42004b65734ce89e0b"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1eff6303266888ec466cddba6c03aa40"></a><!-- doxytag: member="DBusSysdeps::dbus_pid_t" ref="g1eff6303266888ec466cddba6c03aa40" args="" -->
typedef unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A process ID. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g186e987b700f9ddc6cea8aa0db82b151"></a><!-- doxytag: member="DBusSysdeps::dbus_uid_t" ref="g186e987b700f9ddc6cea8aa0db82b151" args="" -->
typedef unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A user ID. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2f5c2e418b81ec2a86594f56ec6d7627"></a><!-- doxytag: member="DBusSysdeps::dbus_gid_t" ref="g2f5c2e418b81ec2a86594f56ec6d7627" args="" -->
typedef unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A group ID. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g208bb797a458b9cc721b317d9c95d233"></a><!-- doxytag: member="DBusSysdeps::DBusAtomic" ref="g208bb797a458b9cc721b317d9c95d233" args="" -->
typedef <a class="el" href="structDBusAtomic.html">DBusAtomic</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g208bb797a458b9cc721b317d9c95d233">DBusAtomic</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opaque type representing an atomically-modifiable integer that can be used from multiple threads. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g54409fb809f59d2b497592c49df04c52"></a><!-- doxytag: member="DBusSysdeps::DBusDirIter" ref="g54409fb809f59d2b497592c49df04c52" args="" -->
typedef <a class="el" href="structDBusDirIter.html">DBusDirIter</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g54409fb809f59d2b497592c49df04c52">DBusDirIter</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opaque type for reading a directory listing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdd0067ae8ae20e747b818697395d420f"></a><!-- doxytag: member="DBusSysdeps::DBusSignalHandler" ref="gdd0067ae8ae20e747b818697395d420f" args="(int sig)" -->
typedef void(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gdd0067ae8ae20e747b818697395d420f">DBusSignalHandler</a> (int sig)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A UNIX signal handler. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="unionDBusGUID.html">DBusGUID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g24015a2f75b94c1307360755ce97f869">DBusGUID</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type representing a universally unique ID.  <a href="#g24015a2f75b94c1307360755ce97f869"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g83c51771d3c4e612522bd5ad72e6ad7a"></a><!-- doxytag: member="DBusSysdeps::_dbus_abort" ref="g83c51771d3c4e612522bd5ad72e6ad7a" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g83c51771d3c4e612522bd5ad72e6ad7a">_dbus_abort</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Aborts the program with SIGABRT (dumping core). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g55de2c2020b6733ed0190c6459578588">_dbus_setenv</a> (const char *varname, const char *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper for setenv().  <a href="#g55de2c2020b6733ed0190c6459578588"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gb846071a4de54cb7e518654f9375313a">_dbus_getenv</a> (const char *varname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper for getenv().  <a href="#gb846071a4de54cb7e518654f9375313a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g38d9b871ec4fb30371d1187d8c9d3ef9">_dbus_clearenv</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper for clearenv().  <a href="#g38d9b871ec4fb30371d1187d8c9d3ef9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcc20134007e90d24a6e290e9344fbd77"></a><!-- doxytag: member="DBusSysdeps::_dbus_pipe_init" ref="gcc20134007e90d24a6e290e9344fbd77" args="(DBusPipe *pipe, int fd)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gcc20134007e90d24a6e290e9344fbd77">_dbus_pipe_init</a> (<a class="el" href="structDBusPipe.html">DBusPipe</a> *pipe, int fd)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g519116659eab383f661fd26dbc43386d">_dbus_pipe_init_stdout</a> (<a class="el" href="structDBusPipe.html">DBusPipe</a> *pipe)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">init a pipe with stdout  <a href="#g519116659eab383f661fd26dbc43386d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gb49c65d02349d01ee291a5c49f7a1ed9">_dbus_pipe_is_valid</a> (<a class="el" href="structDBusPipe.html">DBusPipe</a> *pipe)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check if a pipe is valid; pipes can be set invalid, similar to a -1 file descriptor.  <a href="#gb49c65d02349d01ee291a5c49f7a1ed9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g97e74bab54f40d8fedf30c97fbd12960">_dbus_pipe_is_stdout_or_stderr</a> (<a class="el" href="structDBusPipe.html">DBusPipe</a> *pipe)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if a pipe is stdout or stderr.  <a href="#g97e74bab54f40d8fedf30c97fbd12960"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g17d2d00d7231e37aff69cbac3217ca73">_dbus_pipe_invalidate</a> (<a class="el" href="structDBusPipe.html">DBusPipe</a> *pipe)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes a pipe to an invalid value.  <a href="#g17d2d00d7231e37aff69cbac3217ca73"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g9393ded03e3b9812e4ba99b437ea992d">_dbus_split_paths_and_append</a> (<a class="el" href="structDBusString.html">DBusString</a> *dirs, const char *suffix, <a class="el" href="structDBusList.html">DBusList</a> **dir_list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split paths into a list of char strings.  <a href="#g9393ded03e3b9812e4ba99b437ea992d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gf0c64c612b8d45429515d14849f81a57">_dbus_open_tcp_socket</a> (int *fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Socket interface.  <a href="#gf0c64c612b8d45429515d14849f81a57"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g701f9b3087c196404f66ff95b4ace0b8">_dbus_close_socket</a> (int fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Closes a socket.  <a href="#g701f9b3087c196404f66ff95b4ace0b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g6fe72fa1c0484ac5594b08145ea19530">_dbus_read_socket</a> (int fd, <a class="el" href="structDBusString.html">DBusString</a> *buffer, int count)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Like <a class="el" href="group__DBusSysdepsUnix.html#gf52cb1d5b9fc5611808ce32eff898c28">_dbus_read()</a>, but only works on sockets so is available on Windows.  <a href="#g6fe72fa1c0484ac5594b08145ea19530"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g346cadd9b0f7d0ae1cd19007b2e4c2de">_dbus_write_socket</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Like <a class="el" href="group__DBusSysdepsUnix.html#g3a789bcdfd3d468c2bf917fa5081b27f">_dbus_write()</a>, but only supports sockets and is thus available on Windows.  <a href="#g346cadd9b0f7d0ae1cd19007b2e4c2de"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g02da720105c2a2397b7c687c5ca81174">_dbus_write_socket_two</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer1, int start1, int len1, const <a class="el" href="structDBusString.html">DBusString</a> *buffer2, int start2, int len2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Like <a class="el" href="group__DBusSysdepsUnix.html#g506a183b1f6970d1bfca165ab3de4736">_dbus_write_two()</a> but only works on sockets and is thus available on Windows.  <a href="#g02da720105c2a2397b7c687c5ca81174"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3adf90f6e47d30eeacf0a27d1a09ee5">_dbus_connect_tcp_socket</a> (const char *host, const char *port, const char *family, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a socket and connects to a socket at the given host and port.  <a href="#ga3adf90f6e47d30eeacf0a27d1a09ee5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gfdae31b3b61299dbaaccfcb1205a6f30">_dbus_listen_tcp_socket</a> (const char *host, const char *port, const char *family, <a class="el" href="structDBusString.html">DBusString</a> *retport, int **fds_p, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a socket and binds it to the given path, then listens on the socket.  <a href="#gfdae31b3b61299dbaaccfcb1205a6f30"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g687f4393a365474ec16f02e40c418cce">_dbus_accept</a> (int listen_fd)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accepts a connection on a listening socket.  <a href="#g687f4393a365474ec16f02e40c418cce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g9906c86bebb51358f0d8df6a42af30f6">_dbus_read_credentials_socket</a> (int client_fd, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads a single byte which must be nul (an error occurs otherwise), and reads unix credentials if available.  <a href="#g9906c86bebb51358f0d8df6a42af30f6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g6cc9916aa1dde4d44072ee85b5691b5b">_dbus_send_credentials_socket</a> (int server_fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sends a single nul byte with our UNIX credentials as ancillary data.  <a href="#g6cc9916aa1dde4d44072ee85b5691b5b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gcecdbb00a3c8b63e821edae537ae3c7b">_dbus_credentials_add_from_user</a> (<a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials, const <a class="el" href="structDBusString.html">DBusString</a> *username)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the credentials corresponding to the given username.  <a href="#gcecdbb00a3c8b63e821edae537ae3c7b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g9d5493f8bd1c5577060c8c6dce44d09f">_dbus_credentials_add_from_current_process</a> (<a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds the credentials of the current process to the passed-in credentials object.  <a href="#g9d5493f8bd1c5577060c8c6dce44d09f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g095c54de3974c6d04c29ef86c6e06e35">_dbus_append_user_from_current_process</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append to the string the identity we would like to have when we authenticate, on UNIX this is the current process UID and on Windows something else, probably a Windows SID string.  <a href="#g095c54de3974c6d04c29ef86c6e06e35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g437470fc327b0169fc14a0b66a6e5278">_dbus_parse_unix_user_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *uid_p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse a UNIX user from the bus config file.  <a href="#g437470fc327b0169fc14a0b66a6e5278"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g96da816095ec7fec07136a6019745bcb">_dbus_parse_unix_group_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *gid_p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse a UNIX group from the bus config file.  <a href="#g96da816095ec7fec07136a6019745bcb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g79647ec21c7edccd1510808ea0ca3779">_dbus_unix_groups_from_uid</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **group_ids, int *n_group_ids)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets all groups corresponding to the given UNIX user ID.  <a href="#g79647ec21c7edccd1510808ea0ca3779"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ged2e025454364fbe31cd9b6538c9a936">_dbus_unix_user_is_at_console</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks to see if the UNIX user ID is at the console.  <a href="#ged2e025454364fbe31cd9b6538c9a936"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g849177164bc5e73435104f57c631ed7e">_dbus_unix_user_is_process_owner</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks to see if the UNIX user ID matches the UID of the process.  <a href="#g849177164bc5e73435104f57c631ed7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g912d34a7e40b3a57864972e6d6ab65ba">_dbus_windows_user_is_process_owner</a> (const char *windows_sid)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks to see if the Windows user SID matches the owner of the process.  <a href="#g912d34a7e40b3a57864972e6d6ab65ba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g3cc5a5734416858fa58f3166ed181a64">_dbus_append_keyring_directory_for_credentials</a> (<a class="el" href="structDBusString.html">DBusString</a> *directory, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends the directory in which a keyring for the given credentials should be stored.  <a href="#g3cc5a5734416858fa58f3166ed181a64"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ge74c3fcf12acaeccdb152ef907de951c">_dbus_atomic_inc</a> (<a class="el" href="structDBusAtomic.html">DBusAtomic</a> *atomic)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Atomically increments an integer.  <a href="#ge74c3fcf12acaeccdb152ef907de951c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g3c50a069f795dceeb9172fe2b517bbdc">_dbus_atomic_dec</a> (<a class="el" href="structDBusAtomic.html">DBusAtomic</a> *atomic)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Atomically decrement an integer.  <a href="#g3c50a069f795dceeb9172fe2b517bbdc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gc1cdb5995dcef6dd54399ab610ae689a">_dbus_poll</a> (<a class="el" href="structDBusPollFD.html">DBusPollFD</a> *fds, int n_fds, int timeout_milliseconds)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wrapper for poll().  <a href="#gc1cdb5995dcef6dd54399ab610ae689a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g1153b4669819148af6b3f6f2b7c9183a">_dbus_sleep_milliseconds</a> (int milliseconds)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sleeps the given number of milliseconds.  <a href="#g1153b4669819148af6b3f6f2b7c9183a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g4e3cbe529fc3e7984ed6553672e085f8">_dbus_get_current_time</a> (long *tv_sec, long *tv_usec)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get current time, as in gettimeofday().  <a href="#g4e3cbe529fc3e7984ed6553672e085f8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g13a527e32c05b63e8b32a63d728e20e8">_dbus_file_exists</a> (const char *file)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">File/directory interface.  <a href="#g13a527e32c05b63e8b32a63d728e20e8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gd22d468e789139c87f7f4bb97cadf448">_dbus_file_get_contents</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends the contents of the given file to the string, returning error code.  <a href="#gd22d468e789139c87f7f4bb97cadf448"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gb974e23b29afbbae447129c273173502">_dbus_string_save_to_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes a string out to a file.  <a href="#gb974e23b29afbbae447129c273173502"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g7c83e2e20811330d1d1b2f6249dbe66c">_dbus_make_file_world_readable</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Makes the file readable by every user in the system.  <a href="#g7c83e2e20811330d1d1b2f6249dbe66c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g22665c6d5899c913e03930f90d144f46">_dbus_create_file_exclusively</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates the given file, failing if the file already exists.  <a href="#g22665c6d5899c913e03930f90d144f46"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g4d4936493cddac47b6e7e4ab3f390627">_dbus_delete_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes the given file.  <a href="#g4d4936493cddac47b6e7e4ab3f390627"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga47156dedbe573ee9b213d1fd3f7bb79">_dbus_create_directory</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a directory; succeeds if the directory is created or already existed.  <a href="#ga47156dedbe573ee9b213d1fd3f7bb79"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g3bc1512aef42cea17a2aaacc7d8e7211">_dbus_delete_directory</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a directory; Directory must be empty.  <a href="#g3bc1512aef42cea17a2aaacc7d8e7211"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ge3a3fdc0c6001e367584bb016aca495d">_dbus_concat_dir_and_file</a> (<a class="el" href="structDBusString.html">DBusString</a> *dir, const <a class="el" href="structDBusString.html">DBusString</a> *next_component)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Appends the given filename to the given directory.  <a href="#ge3a3fdc0c6001e367584bb016aca495d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gfa79c1113fa75419dcc5ee4290e06608">_dbus_string_get_dirname</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusString.html">DBusString</a> *dirname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the directory name from a complete filename.  <a href="#gfa79c1113fa75419dcc5ee4290e06608"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g6d80876bcae54f47cde79d0bce20321d">_dbus_path_is_absolute</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks whether the filename is an absolute path.  <a href="#g6d80876bcae54f47cde79d0bce20321d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g079d34a9d90759e6b3ebebab424c696e">_dbus_get_standard_session_servicedirs</a> (<a class="el" href="structDBusList.html">DBusList</a> **dirs)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the standard directories for a session bus to look for service activation files.  <a href="#g079d34a9d90759e6b3ebebab424c696e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g5193160c3dc144af34b250cfb5b0a61e">_dbus_get_standard_system_servicedirs</a> (<a class="el" href="structDBusList.html">DBusList</a> **dirs)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the standard directories for a system bus to look for service activation files.  <a href="#g5193160c3dc144af34b250cfb5b0a61e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g6a9478a21745b128750df87ac557c7d4">_dbus_append_system_config_file</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append the absolute path of the system.conf file (there is no system bus on Windows so this can just return FALSE and print a warning or something).  <a href="#g6a9478a21745b128750df87ac557c7d4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gcc062b5f20f4a355ea78afccb0abd5f9">_dbus_append_session_config_file</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append the absolute path of the session.conf file.  <a href="#gcc062b5f20f4a355ea78afccb0abd5f9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g95ab99cceeaa29082a02f0b971d9e9e5">_dbus_pipe_write</a> (<a class="el" href="structDBusPipe.html">DBusPipe</a> *pipe, const <a class="el" href="structDBusString.html">DBusString</a> *buffer, int start, int len, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">write data to a pipe.  <a href="#g95ab99cceeaa29082a02f0b971d9e9e5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g2dfca26ba16636422902f7f3a62bd1ce">_dbus_pipe_close</a> (<a class="el" href="structDBusPipe.html">DBusPipe</a> *pipe, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">close a pipe.  <a href="#g2dfca26ba16636422902f7f3a62bd1ce"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusDirIter.html">DBusDirIter</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaf6eb8179fb6ea2175ed9742a0c8be68">_dbus_directory_open</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open a directory to iterate over.  <a href="#gaf6eb8179fb6ea2175ed9742a0c8be68"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gb9a2ddb130da035d6186f2d96bf37cb4">_dbus_directory_get_next_file</a> (<a class="el" href="structDBusDirIter.html">DBusDirIter</a> *iter, <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get next file in the directory.  <a href="#gb9a2ddb130da035d6186f2d96bf37cb4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1821b64302fe8e12278fa227eb11d393"></a><!-- doxytag: member="DBusSysdeps::_dbus_directory_close" ref="g1821b64302fe8e12278fa227eb11d393" args="(DBusDirIter *iter)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g1821b64302fe8e12278fa227eb11d393">_dbus_directory_close</a> (<a class="el" href="structDBusDirIter.html">DBusDirIter</a> *iter)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Closes a directory iteration. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g8e16f75e361d9fed43223f69baf0e2a5">_dbus_check_dir_is_private_to_user</a> (<a class="el" href="structDBusString.html">DBusString</a> *dir, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks to make sure the given directory is private to the user.  <a href="#g8e16f75e361d9fed43223f69baf0e2a5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g000b1d83b0188e2db82d766b6665bb83">_dbus_fd_set_close_on_exec</a> (int fd)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the file descriptor to be close on exec.  <a href="#g000b1d83b0188e2db82d766b6665bb83"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g3ecdae905f2d9e95fd35891b20f06532">_dbus_get_tmpdir</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the temporary files directory by inspecting the environment variables TMPDIR, TMP, and TEMP in that order.  <a href="#g3ecdae905f2d9e95fd35891b20f06532"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfb4454c18ee8e5bcc20dbccd93e1d9ba"></a><!-- doxytag: member="DBusSysdeps::_dbus_generate_pseudorandom_bytes_buffer" ref="gfb4454c18ee8e5bcc20dbccd93e1d9ba" args="(char *buffer, int n_bytes)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gfb4454c18ee8e5bcc20dbccd93e1d9ba">_dbus_generate_pseudorandom_bytes_buffer</a> (char *buffer, int n_bytes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Random numbers. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga32f87746e9264b2425736043d02fad4">_dbus_generate_random_bytes_buffer</a> (char *buffer, int n_bytes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills n_bytes of the given buffer with random bytes.  <a href="#ga32f87746e9264b2425736043d02fad4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gc9fd08af5e54c0e9b3db108b48a65778">_dbus_generate_random_bytes</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int n_bytes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the given number of random bytes, using the best mechanism we can come up with.  <a href="#gc9fd08af5e54c0e9b3db108b48a65778"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g709ce349c6ee05263850444fb4e0177d">_dbus_generate_random_ascii</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int n_bytes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the given number of random bytes, where the bytes are chosen from the alphanumeric ASCII subset.  <a href="#g709ce349c6ee05263850444fb4e0177d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g2212aa0e5732257598a6597748c658e4">_dbus_error_from_errno</a> (int error_number)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts a UNIX or Windows errno into a <a class="el" href="structDBusError.html">DBusError</a> name.  <a href="#g2212aa0e5732257598a6597748c658e4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf0f4cb7f145fe1f48f5302277560407a"></a><!-- doxytag: member="DBusSysdeps::_dbus_set_errno_to_zero" ref="gf0f4cb7f145fe1f48f5302277560407a" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gf0f4cb7f145fe1f48f5302277560407a">_dbus_set_errno_to_zero</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign 0 to the global errno variable. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gb9ccdfee5c7986ff236a6cde66a9af2f">_dbus_get_is_errno_nonzero</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if errno is set.  <a href="#gb9ccdfee5c7986ff236a6cde66a9af2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga03e5d4d95ef46a70d25fe315e674e24">_dbus_get_is_errno_eagain_or_ewouldblock</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if errno is EAGAIN or EWOULDBLOCK (this has to be done differently for Winsock so is abstracted).  <a href="#ga03e5d4d95ef46a70d25fe315e674e24"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gec2ce24907adaedd1bf88bb28d82c96d">_dbus_get_is_errno_enomem</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if errno is ENOMEM.  <a href="#gec2ce24907adaedd1bf88bb28d82c96d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g08e67a10b197995c101c89f248c24105">_dbus_get_is_errno_eintr</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if errno is EINTR.  <a href="#g08e67a10b197995c101c89f248c24105"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g56de84795d6df4162ad79b3be7af7588">_dbus_strerror_from_errno</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get error message from errno.  <a href="#g56de84795d6df4162ad79b3be7af7588"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6890d4cde3afec0bf274ca2af8c9e204"></a><!-- doxytag: member="DBusSysdeps::_dbus_disable_sigpipe" ref="g6890d4cde3afec0bf274ca2af8c9e204" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g6890d4cde3afec0bf274ca2af8c9e204">_dbus_disable_sigpipe</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">signal (SIGPIPE, SIG_IGN); <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g203e3257b50597a8fe7757c920474a20">_dbus_exit</a> (int code) _DBUS_GNUC_NORETURN</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exit the process, returning the given value.  <a href="#g203e3257b50597a8fe7757c920474a20"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gffaf8b5bb832c20a8ccb10f012920776">_dbus_printf_string_upper_bound</a> (const char *format, va_list args)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Measure the length of the given format string and arguments, not including the terminating nul.  <a href="#gffaf8b5bb832c20a8ccb10f012920776"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g04e98ad0e3a181f0a5921a4cbc49cf08">_dbus_stat</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusStat.html">DBusStat</a> *statbuf, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">stat() wrapper.  <a href="#g04e98ad0e3a181f0a5921a4cbc49cf08"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ge96a3f400324b065f78a865a86454d09">_dbus_full_duplex_pipe</a> (int *fd1, int *fd2, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> blocking, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a full-duplex pipe (as in socketpair()).  <a href="#ge96a3f400324b065f78a865a86454d09"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g8646ab2ef727fcc862c7904113c88a8d">_dbus_print_backtrace</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">On GNU libc systems, print a crude backtrace to stderr.  <a href="#g8646ab2ef727fcc862c7904113c88a8d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g4d4f9b1d4e78ba017ada75a6982ac173">_dbus_become_daemon</a> (const <a class="el" href="structDBusString.html">DBusString</a> *pidfile, <a class="el" href="structDBusPipe.html">DBusPipe</a> *print_pid_pipe, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Does the chdir, fork, setsid, etc.  <a href="#g4d4f9b1d4e78ba017ada75a6982ac173"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g7461c6fa553c30f4eb8482675e86668c">_dbus_write_pid_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, unsigned long pid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a file containing the process ID.  <a href="#g7461c6fa553c30f4eb8482675e86668c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g45f661c5a089ed45233a1acabaf31964">_dbus_verify_daemon_user</a> (const char *user)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Verify that after the fork we can successfully change to this user.  <a href="#g45f661c5a089ed45233a1acabaf31964"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g82c920a8c3b5958ba1ecf8e5f5d6373b">_dbus_change_to_daemon_user</a> (const char *user, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the user and group the bus is running as.  <a href="#g82c920a8c3b5958ba1ecf8e5f5d6373b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g4aa7500366dad2dd6d3fa97b3aa7165b">_dbus_set_signal_handler</a> (int sig, <a class="el" href="group__DBusSysdeps.html#gdd0067ae8ae20e747b818697395d420f">DBusSignalHandler</a> handler)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Installs a UNIX signal handler.  <a href="#g4aa7500366dad2dd6d3fa97b3aa7165b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g31ec42cef2d15ca358e737bb5f19c5cf">_dbus_user_at_console</a> (const char *username, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks if user is at the console.  <a href="#g31ec42cef2d15ca358e737bb5f19c5cf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g5d0a3ba7355b396fab824b6404840db2">_dbus_get_autolaunch_address</a> (<a class="el" href="structDBusString.html">DBusString</a> *address, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines the address of the session bus by querying a platform-specific method.  <a href="#g5d0a3ba7355b396fab824b6404840db2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g3f073afc8ef8397471531baf513e1bb5">_dbus_read_local_machine_uuid</a> (<a class="el" href="unionDBusGUID.html">DBusGUID</a> *machine_id, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> create_if_not_found, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads the uuid of the machine we're running on from the dbus configuration.  <a href="#g3f073afc8ef8397471531baf513e1bb5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ge7be34dbffb6458578e86c59a26d4fad">_dbus_threads_init_platform_specific</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize threads as in <a class="el" href="group__DBusThreads.html#gf508fbf3e39435491244b856183a1296">dbus_threads_init_default()</a>, appropriately for the platform.  <a href="#ge7be34dbffb6458578e86c59a26d4fad"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g1b30aa55e8758ed6e1b62e0f86866543">_dbus_pid_for_log</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The only reason this is separate from <a class="el" href="group__DBusSysdeps.html#g870807b07f3b1c1a725eb9408edad147">_dbus_getpid()</a> is to allow it on Windows for logging but not for other purposes.  <a href="#g1b30aa55e8758ed6e1b62e0f86866543"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusSysdeps.html#g1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g870807b07f3b1c1a725eb9408edad147">_dbus_getpid</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets our process ID.  <a href="#g870807b07f3b1c1a725eb9408edad147"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#g184b42c4b42b91ef73e9ee50a1fa12c2">_dbus_flush_caches</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called when the bus daemon is signaled to reload its configuration; any caches should be nuked.  <a href="#g184b42c4b42b91ef73e9ee50a1fa12c2"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Internal system-dependent API available on UNIX and Windows. 
<p>
The system-dependent API has a dual purpose. First, it encapsulates all usage of operating system APIs for ease of auditing and to avoid cluttering the rest of the code with bizarre OS quirks and headers. Second, it abstracts different operating system APIs for portability. <hr><h2>Define Documentation</h2>
<a class="anchor" name="gc8269b795461ee42004b65734ce89e0b"></a><!-- doxytag: member="dbus-sysdeps.h::_DBUS_DOUBLES_BITWISE_EQUAL" ref="gc8269b795461ee42004b65734ce89e0b" args="(a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define _DBUS_DOUBLES_BITWISE_EQUAL          </td>
          <td>(</td>
          <td class="paramtype">a,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">b&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">(<a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 0) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 0) &amp;&amp;       \
      <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 1) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 1) &amp;&amp;       \
      <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 2) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 2) &amp;&amp;       \
      <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 3) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 3) &amp;&amp;       \
      <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 4) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 4) &amp;&amp;       \
      <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 5) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 5) &amp;&amp;       \
      <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 6) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 6) &amp;&amp;       \
      <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 7) == <a class="code" href="group__DBusSysdeps.html#g50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 7))
</pre></div>On x86 there is an 80-bit FPU, and if you do "a == b" it may have a or b in an 80-bit register, thus failing to compare the two 64-bit doubles for bitwise equality. 
<p>
So this macro compares the two doubles bitwise. 
<p>
Definition at line <a class="el" href="dbus-sysdeps_8h-source.html#l00407">407</a> of file <a class="el" href="dbus-sysdeps_8h-source.html">dbus-sysdeps.h</a>.
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g24015a2f75b94c1307360755ce97f869"></a><!-- doxytag: member="dbus-sysdeps.h::DBusGUID" ref="g24015a2f75b94c1307360755ce97f869" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef union <a class="el" href="unionDBusGUID.html">DBusGUID</a> <a class="el" href="unionDBusGUID.html">DBusGUID</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type representing a universally unique ID. 
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000064">Todo:</a></b></dt><dd>rename to UUID instead of GUID </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8h-source.html#l00423">423</a> of file <a class="el" href="dbus-sysdeps_8h-source.html">dbus-sysdeps.h</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g687f4393a365474ec16f02e40c418cce"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_accept" ref="g687f4393a365474ec16f02e40c418cce" args="(int listen_fd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_accept           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>listen_fd</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accepts a connection on a listening socket. 
<p>
Handles EINTR for you.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>listen_fd</em>&nbsp;</td><td>the listen file descriptor </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the connection fd of the client, or -1 on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01334">1334</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
</div>
</div><p>
<a class="anchor" name="g3cc5a5734416858fa58f3166ed181a64"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_append_keyring_directory_for_credentials" ref="g3cc5a5734416858fa58f3166ed181a64" args="(DBusString *directory, DBusCredentials *credentials)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_append_keyring_directory_for_credentials           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>directory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="paramname"> <em>credentials</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Appends the directory in which a keyring for the given credentials should be stored. 
<p>
The credentials should have either a Windows or UNIX user in them. The directory should be an absolute path.<p>
On UNIX the directory is ~/.dbus-keyrings while on Windows it should probably be something else, since the dotfile convention is not normal on Windows.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>directory</em>&nbsp;</td><td>string to append directory to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>credentials</em>&nbsp;</td><td>credentials the directory should be for</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">3171</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02331">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00298">_dbus_credentials_are_anonymous()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00236">_dbus_credentials_get_unix_uid()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00175">_dbus_getenv()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00446">_dbus_homedir_from_uid()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00106">DBUS_UID_UNSET</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>.
</div>
</div><p>
<a class="anchor" name="gcc062b5f20f4a355ea78afccb0abd5f9"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_append_session_config_file" ref="gcc062b5f20f4a355ea78afccb0abd5f9" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_append_session_config_file           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Append the absolute path of the session.conf file. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string to append to </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03139">3139</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>.
</div>
</div><p>
<a class="anchor" name="g6a9478a21745b128750df87ac557c7d4"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_append_system_config_file" ref="g6a9478a21745b128750df87ac557c7d4" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_append_system_config_file           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Append the absolute path of the system.conf file (there is no system bus on Windows so this can just return FALSE and print a warning or something). 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string to append to </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03127">3127</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>.
</div>
</div><p>
<a class="anchor" name="g095c54de3974c6d04c29ef86c6e06e35"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_append_user_from_current_process" ref="g095c54de3974c6d04c29ef86c6e06e35" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_append_user_from_current_process           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Append to the string the identity we would like to have when we authenticate, on UNIX this is the current process UID and on Windows something else, probably a Windows SID string. 
<p>
No escaping is required, that is done in <a class="el" href="dbus-auth_8c-source.html">dbus-auth.c</a>. The username here need not be anything human-readable, it can be the machine-readable form i.e. a user id.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string to append to </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01664">1664</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01684">_dbus_getuid()</a>, and <a class="el" href="dbus-sysdeps_8c-source.html#l00425">_dbus_string_append_uint()</a>.
</div>
</div><p>
<a class="anchor" name="g3c50a069f795dceeb9172fe2b517bbdc"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_atomic_dec" ref="g3c50a069f795dceeb9172fe2b517bbdc" args="(DBusAtomic *atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> _dbus_atomic_dec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusAtomic.html">DBusAtomic</a> *&nbsp;</td>
          <td class="paramname"> <em>atomic</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Atomically decrement an integer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>atomic</em>&nbsp;</td><td>pointer to the integer to decrement </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the value before decrementing</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000059">Todo:</a></b></dt><dd>implement arch-specific faster atomic ops </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01792">1792</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00287">_DBUS_LOCK</a>, <a class="el" href="dbus-internals_8h-source.html#l00288">_DBUS_UNLOCK</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00198">DBusAtomic::value</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l01350">_dbus_connection_unref_unlocked()</a>, <a class="el" href="dbus-server_8c-source.html#l00454">_dbus_server_unref_unlocked()</a>, <a class="el" href="dbus-connection_8c-source.html#l02610">dbus_connection_unref()</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00559">dbus_pending_call_unref()</a>, and <a class="el" href="dbus-server_8c-source.html#l00697">dbus_server_unref()</a>.
</div>
</div><p>
<a class="anchor" name="ge74c3fcf12acaeccdb152ef907de951c"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_atomic_inc" ref="ge74c3fcf12acaeccdb152ef907de951c" args="(DBusAtomic *atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> _dbus_atomic_inc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusAtomic.html">DBusAtomic</a> *&nbsp;</td>
          <td class="paramname"> <em>atomic</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Atomically increments an integer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>atomic</em>&nbsp;</td><td>pointer to the integer to increment </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the value before incrementing</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000058">Todo:</a></b></dt><dd>implement arch-specific faster atomic ops </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01769">1769</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00287">_DBUS_LOCK</a>, <a class="el" href="dbus-internals_8h-source.html#l00288">_DBUS_UNLOCK</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00198">DBusAtomic::value</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l01326">_dbus_connection_ref_unlocked()</a>, <a class="el" href="dbus-server_8c-source.html#l00432">_dbus_server_ref_unlocked()</a>, <a class="el" href="dbus-connection_8c-source.html#l02464">dbus_connection_ref()</a>, <a class="el" href="dbus-memory_8c-source.html#l00440">dbus_malloc()</a>, <a class="el" href="dbus-memory_8c-source.html#l00493">dbus_malloc0()</a>, <a class="el" href="dbus-message_8c-source.html#l01365">dbus_message_ref()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00532">dbus_pending_call_ref()</a>, <a class="el" href="dbus-memory_8c-source.html#l00544">dbus_realloc()</a>, and <a class="el" href="dbus-server_8c-source.html#l00670">dbus_server_ref()</a>.
</div>
</div><p>
<a class="anchor" name="g4d4f9b1d4e78ba017ada75a6982ac173"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_become_daemon" ref="g4d4f9b1d4e78ba017ada75a6982ac173" args="(const DBusString *pidfile, DBusPipe *print_pid_pipe, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_become_daemon           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>pidfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&nbsp;</td>
          <td class="paramname"> <em>print_pid_pipe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Does the chdir, fork, setsid, etc. 
<p>
to become a daemon process.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pidfile</em>&nbsp;</td><td><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, or pidfile to create </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>print_pid_pipe</em>&nbsp;</td><td>pipe to print daemon's pid to, or -1 for none </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for errors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">74</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00175">_dbus_getenv()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00223">_dbus_pipe_is_valid()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00186">_dbus_pipe_write()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00387">_dbus_string_append_int()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00202">_dbus_write_pid_file()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00301">dbus_error_is_set()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g82c920a8c3b5958ba1ecf8e5f5d6373b"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_change_to_daemon_user" ref="g82c920a8c3b5958ba1ecf8e5f5d6373b" args="(const char *user, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_change_to_daemon_user           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Changes the user and group the bus is running as. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>user</em>&nbsp;</td><td>the user to become </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for errors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00275">275</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00164">_dbus_get_user_id_and_primary_group()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01684">_dbus_getuid()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g8e16f75e361d9fed43223f69baf0e2a5"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_check_dir_is_private_to_user" ref="g8e16f75e361d9fed43223f69baf0e2a5" args="(DBusString *dir, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_check_dir_is_private_to_user           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks to make sure the given directory is private to the user. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dir</em>&nbsp;</td><td>the name of the directory </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error return </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01365">1365</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g38d9b871ec4fb30371d1187d8c9d3ef9"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_clearenv" ref="g38d9b871ec4fb30371d1187d8c9d3ef9" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_clearenv           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Wrapper for clearenv(). 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success. </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00186">186</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="g701f9b3087c196404f66ff95b4ace0b8"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_close_socket" ref="g701f9b3087c196404f66ff95b4ace0b8" args="(int fd, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_close_socket           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Closes a socket. 
<p>
Should not be used on non-socket file descriptors or handles.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>the socket </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for an error </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00133">133</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>.
<p>
Referenced by <a class="el" href="dbus-spawn_8c-source.html#l00264">_dbus_babysitter_unref()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-socket_8c-source.html#l00369">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-transport-unix_8c-source.html#l00053">_dbus_transport_new_for_domain_socket()</a>, and <a class="el" href="dbus-transport-socket_8c-source.html#l01216">_dbus_transport_new_for_tcp_socket()</a>.
</div>
</div><p>
<a class="anchor" name="ge3a3fdc0c6001e367584bb016aca495d"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_concat_dir_and_file" ref="ge3a3fdc0c6001e367584bb016aca495d" args="(DBusString *dir, const DBusString *next_component)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_concat_dir_and_file           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>next_component</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Appends the given filename to the given directory. 
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000060">Todo:</a></b></dt><dd>it might be cute to collapse multiple '/' such as "foo//" concat "//bar"</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dir</em>&nbsp;</td><td>the directory name </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>next_component</em>&nbsp;</td><td>the filename </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02331">2331</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01273">_dbus_string_append_byte()</a>, <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00832">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00052">_dbus_server_listen_platform_specific()</a>, and <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>.
</div>
</div><p>
<a class="anchor" name="ga3adf90f6e47d30eeacf0a27d1a09ee5"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_connect_tcp_socket" ref="ga3adf90f6e47d30eeacf0a27d1a09ee5" args="(const char *host, const char *port, const char *family, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_connect_tcp_socket           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>family</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a socket and connects to a socket at the given host and port. 
<p>
The connection fd is returned, and is set up as nonblocking.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>host</em>&nbsp;</td><td>the host name to connect to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>the port to connect to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>family</em>&nbsp;</td><td>the address family to listen on, NULL for all </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for error code </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>connection file descriptor or -1 on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00746">746</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00104">_dbus_open_tcp_socket()</a>, <a class="el" href="dbus-internals_8h-source.html#l00159">_DBUS_ZERO</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-transport-socket_8c-source.html#l01216">_dbus_transport_new_for_tcp_socket()</a>.
</div>
</div><p>
<a class="anchor" name="ga47156dedbe573ee9b213d1fd3f7bb79"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_create_directory" ref="ga47156dedbe573ee9b213d1fd3f7bb79" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_create_directory           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a directory; succeeds if the directory is created or already existed. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>directory filename </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>initialized error object </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02297">2297</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>.
</div>
</div><p>
<a class="anchor" name="g22665c6d5899c913e03930f90d144f46"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_create_file_exclusively" ref="g22665c6d5899c913e03930f90d144f46" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_create_file_exclusively           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates the given file, failing if the file already exists. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the filename </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error location </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if we created the file and it didn't exist </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02222">2222</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g9d5493f8bd1c5577060c8c6dce44d09f"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_credentials_add_from_current_process" ref="g9d5493f8bd1c5577060c8c6dce44d09f" args="(DBusCredentials *credentials)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_credentials_add_from_current_process           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="paramname"> <em>credentials</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds the credentials of the current process to the passed-in credentials object. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>credentials</em>&nbsp;</td><td>credentials to add to </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory; does not properly roll back on failure, so only some credentials may have been added </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01634">1634</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-credentials_8c-source.html#l00144">_dbus_credentials_add_unix_pid()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00159">_dbus_credentials_add_unix_uid()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01675">_dbus_getpid()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01684">_dbus_getuid()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-credentials_8c-source.html#l00089">_dbus_credentials_new_from_current_process()</a>, and <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>.
</div>
</div><p>
<a class="anchor" name="gcecdbb00a3c8b63e821edae537ae3c7b"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_credentials_add_from_user" ref="gcecdbb00a3c8b63e821edae537ae3c7b" args="(DBusCredentials *credentials, const DBusString *username)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_credentials_add_from_user           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="paramname"> <em>credentials</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>username</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds the credentials corresponding to the given username. 
<p>
Used among other purposes to parses a desired identity provided from a client in the auth protocol. On UNIX this means parsing a UID, on Windows probably parsing an SID string.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000068">Todo:</a></b></dt><dd>this is broken because it treats OOM and parse error the same way. Needs a <a class="el" href="structDBusError.html">DBusError</a>.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>credentials</em>&nbsp;</td><td>credentials to fill in </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>username</em>&nbsp;</td><td>the username </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the username existed and we got some credentials </dd></dl>

<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00492">492</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-credentials_8c-source.html#l00159">_dbus_credentials_add_unix_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00656">_dbus_user_database_get_username()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="dbus-transport-protected_8h-source.html#l00092">DBusTransport::credentials</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00090">DBusUserInfo::uid</a>.
</div>
</div><p>
<a class="anchor" name="g3bc1512aef42cea17a2aaacc7d8e7211"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_delete_directory" ref="g3bc1512aef42cea17a2aaacc7d8e7211" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_delete_directory           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes a directory; Directory must be empty. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>directory filename </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>initialized error object </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00444">444</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g4d4936493cddac47b6e7e4ab3f390627"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_delete_file" ref="g4d4936493cddac47b6e7e4ab3f390627" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_delete_file           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deletes the given file. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the filename </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error location</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if unlink() succeeded </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02268">2268</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gb9a2ddb130da035d6186f2d96bf37cb4"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_directory_get_next_file" ref="gb9a2ddb130da035d6186f2d96bf37cb4" args="(DBusDirIter *iter, DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_directory_get_next_file           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusDirIter.html">DBusDirIter</a> *&nbsp;</td>
          <td class="paramname"> <em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get next file in the directory. 
<p>
Will not return "." or ".." on UNIX. If an error occurs, the contents of "filename" are undefined. The error is never set if the function succeeds.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>iter</em>&nbsp;</td><td>the iterator </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>string to be set to the next file in the dir </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for error </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if filename was filled in with a new filename </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00678">678</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00578">DBusDirIter::d</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-memory_8c-source.html#l00440">dbus_malloc()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gaf6eb8179fb6ea2175ed9742a0c8be68"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_directory_open" ref="gaf6eb8179fb6ea2175ed9742a0c8be68" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusDirIter.html">DBusDirIter</a>* _dbus_directory_open           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open a directory to iterate over. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the directory name </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>exception return object or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>new iterator, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00590">590</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00578">DBusDirIter::d</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g2212aa0e5732257598a6597748c658e4"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_error_from_errno" ref="g2212aa0e5732257598a6597748c658e4" args="(int error_number)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* _dbus_error_from_errno           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>error_number</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Converts a UNIX or Windows errno into a <a class="el" href="structDBusError.html">DBusError</a> name. 
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000062">Todo:</a></b></dt><dd>should cover more errnos, specifically those from open().</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error_number</em>&nbsp;</td><td>the errno. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>an error name </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00899">899</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00348">DBUS_ERROR_ACCESS_DENIED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00362">DBUS_ERROR_ADDRESS_IN_USE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00370">DBUS_ERROR_FILE_EXISTS</a>, <a class="el" href="dbus-protocol_8h-source.html#l00368">DBUS_ERROR_FILE_NOT_FOUND</a>, <a class="el" href="dbus-protocol_8h-source.html#l00346">DBUS_ERROR_LIMITS_EXCEEDED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00360">DBUS_ERROR_NO_NETWORK</a>, <a class="el" href="dbus-protocol_8h-source.html#l00352">DBUS_ERROR_NO_SERVER</a>, <a class="el" href="dbus-protocol_8h-source.html#l00344">DBUS_ERROR_NOT_SUPPORTED</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00358">DBUS_ERROR_TIMEOUT</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00275">_dbus_change_to_daemon_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01365">_dbus_check_dir_is_private_to_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00746">_dbus_connect_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00473">_dbus_connect_unix_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00678">_dbus_directory_get_next_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00590">_dbus_directory_open()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01949">_dbus_file_get_contents()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02641">_dbus_full_duplex_pipe()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00854">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00609">_dbus_listen_unix_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01112">_dbus_read_credentials_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00542">_dbus_stat()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>, and <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00202">_dbus_write_pid_file()</a>.
</div>
</div><p>
<a class="anchor" name="g203e3257b50597a8fe7757c920474a20"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_exit" ref="g203e3257b50597a8fe7757c920474a20" args="(int code) _DBUS_GNUC_NORETURN" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_exit           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>code</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Exit the process, returning the given value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>code</em>&nbsp;</td><td>the exit code </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02467">2467</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00072">_dbus_abort()</a>.
</div>
</div><p>
<a class="anchor" name="g000b1d83b0188e2db82d766b6665bb83"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_fd_set_close_on_exec" ref="g000b1d83b0188e2db82d766b6665bb83" args="(int fd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_fd_set_close_on_exec           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the file descriptor to be close on exec. 
<p>
Should be called for all file descriptors in D-Bus code.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>the file descriptor </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02509">2509</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-socket_8c-source.html#l00369">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-spawn_8c-source.html#l01061">_dbus_spawn_async_with_babysitter()</a>, <a class="el" href="dbus-transport-unix_8c-source.html#l00053">_dbus_transport_new_for_domain_socket()</a>, and <a class="el" href="dbus-transport-socket_8c-source.html#l01216">_dbus_transport_new_for_tcp_socket()</a>.
</div>
</div><p>
<a class="anchor" name="g13a527e32c05b63e8b32a63d728e20e8"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_file_exists" ref="g13a527e32c05b63e8b32a63d728e20e8" args="(const char *file)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_file_exists           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>file</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
File/directory interface. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>full path to the file </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if file exists </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00470">470</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00482">_dbus_user_at_console()</a>.
</div>
</div><p>
<a class="anchor" name="gd22d468e789139c87f7f4bb97cadf448"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_file_get_contents" ref="gd22d468e789139c87f7f4bb97cadf448" args="(DBusString *str, const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_file_get_contents           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Appends the contents of the given file to the string, returning error code. 
<p>
At the moment, won't open a file more than a megabyte in size.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string to append to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>filename to load </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>place to set an error </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error was set </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01949">1949</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g184b42c4b42b91ef73e9ee50a1fa12c2"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_flush_caches" ref="g184b42c4b42b91ef73e9ee50a1fa12c2" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_flush_caches           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called when the bus daemon is signaled to reload its configuration; any caches should be nuked. 
<p>
Of course any caches that need explicit reload are probably broken, but c'est la vie. 
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03152">3152</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00346">_dbus_user_database_flush_system()</a>.
</div>
</div><p>
<a class="anchor" name="ge96a3f400324b065f78a865a86454d09"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_full_duplex_pipe" ref="ge96a3f400324b065f78a865a86454d09" args="(int *fd1, int *fd2, dbus_bool_t blocking, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_full_duplex_pipe           </td>
          <td>(</td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>fd1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>fd2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td>
          <td class="paramname"> <em>blocking</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a full-duplex pipe (as in socketpair()). 
<p>
Sets both ends of the pipe nonblocking.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000061">Todo:</a></b></dt><dd>libdbus only uses this for the debug-pipe server, so in principle it could be in <a class="el" href="dbus-sysdeps-util_8c-source.html">dbus-sysdeps-util.c</a>, except that <a class="el" href="dbus-sysdeps-util_8c-source.html">dbus-sysdeps-util.c</a> isn't in libdbus when tests are enabled and the debug-pipe server is used.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fd1</em>&nbsp;</td><td>return location for one end </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fd2</em>&nbsp;</td><td>return location for the other end </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>blocking</em>&nbsp;</td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if pipe should be blocking </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error return </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure (if error is set) </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02641">2641</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-spawn_8c-source.html#l01061">_dbus_spawn_async_with_babysitter()</a>.
</div>
</div><p>
<a class="anchor" name="g709ce349c6ee05263850444fb4e0177d"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_generate_random_ascii" ref="g709ce349c6ee05263850444fb4e0177d" args="(DBusString *str, int n_bytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_generate_random_ascii           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n_bytes</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Generates the given number of random bytes, where the bytes are chosen from the alphanumeric ASCII subset. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_bytes</em>&nbsp;</td><td>the number of random ASCII bytes to append to string </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory or other failure </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00860">860</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02424">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-string_8c-source.html#l02633">_dbus_string_validate_ascii()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-server-unix_8c-source.html#l00052">_dbus_server_listen_platform_specific()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>.
</div>
</div><p>
<a class="anchor" name="gc9fd08af5e54c0e9b3db108b48a65778"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_generate_random_bytes" ref="gc9fd08af5e54c0e9b3db108b48a65778" args="(DBusString *str, int n_bytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_generate_random_bytes           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n_bytes</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Generates the given number of random bytes, using the best mechanism we can come up with. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_bytes</em>&nbsp;</td><td>the number of random bytes to append to string </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02424">2424</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00860">_dbus_generate_random_ascii()</a>, and <a class="el" href="dbus-sysdeps_8c-source.html#l00828">_dbus_generate_random_bytes_buffer()</a>.
</div>
</div><p>
<a class="anchor" name="ga32f87746e9264b2425736043d02fad4"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_generate_random_bytes_buffer" ref="ga32f87746e9264b2425736043d02fad4" args="(char *buffer, int n_bytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_generate_random_bytes_buffer           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n_bytes</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fills n_bytes of the given buffer with random bytes. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>an allocated buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_bytes</em>&nbsp;</td><td>the number of bytes in buffer to write to </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00828">828</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00793">_dbus_generate_pseudorandom_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02424">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-string_8c-source.html#l00721">_dbus_string_copy_to_buffer()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, and <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>.
<p>
Referenced by <a class="el" href="dbus-internals_8c-source.html#l00510">_dbus_generate_uuid()</a>.
</div>
</div><p>
<a class="anchor" name="g5d0a3ba7355b396fab824b6404840db2"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_autolaunch_address" ref="g5d0a3ba7355b396fab824b6404840db2" args="(DBusString *address, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_autolaunch_address           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Determines the address of the session bus by querying a platform-specific method. 
<p>
If successful, returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and appends the address to <code>address</code>. If a failure happens, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> and sets an error in <code>error</code>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>address</em>&nbsp;</td><td>a <a class="el" href="structDBusString.html">DBusString</a> where the address can be stored </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>a <a class="el" href="structDBusError.html">DBusError</a> to store the error in case of failure </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if an error happened </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">2754</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-internals_8c-source.html#l00715">_dbus_get_local_machine_uuid_encoded()</a>, <a class="el" href="dbus-internals_8h-source.html#l00154">_DBUS_N_ELEMENTS</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00383">DBUS_ERROR_SPAWN_EXEC_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-spawn_8c-source.html#l00768">READ_END</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00770">WRITE_END</a>.
</div>
</div><p>
<a class="anchor" name="g4e3cbe529fc3e7984ed6553672e085f8"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_current_time" ref="g4e3cbe529fc3e7984ed6553672e085f8" args="(long *tv_sec, long *tv_usec)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_get_current_time           </td>
          <td>(</td>
          <td class="paramtype">long *&nbsp;</td>
          <td class="paramname"> <em>tv_sec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&nbsp;</td>
          <td class="paramname"> <em>tv_usec</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get current time, as in gettimeofday(). 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tv_sec</em>&nbsp;</td><td>return location for number of seconds </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tv_usec</em>&nbsp;</td><td>return location for number of microseconds (thousandths) </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01925">1925</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l02218">_dbus_connection_block_pending_call()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00793">_dbus_generate_pseudorandom_bytes_buffer()</a>, and <a class="el" href="dbus-internals_8c-source.html#l00510">_dbus_generate_uuid()</a>.
</div>
</div><p>
<a class="anchor" name="ga03e5d4d95ef46a70d25fe315e674e24"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_is_errno_eagain_or_ewouldblock" ref="ga03e5d4d95ef46a70d25fe315e674e24" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_is_errno_eagain_or_ewouldblock           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if errno is EAGAIN or EWOULDBLOCK (this has to be done differently for Winsock so is abstracted). 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if errno == EAGAIN or errno == EWOULDBLOCK </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03242">3242</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
</div>
</div><p>
<a class="anchor" name="g08e67a10b197995c101c89f248c24105"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_is_errno_eintr" ref="g08e67a10b197995c101c89f248c24105" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_is_errno_eintr           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if errno is EINTR. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if errno == EINTR </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01021">1021</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="gec2ce24907adaedd1bf88bb28d82c96d"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_is_errno_enomem" ref="gec2ce24907adaedd1bf88bb28d82c96d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_is_errno_enomem           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if errno is ENOMEM. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if errno == ENOMEM </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01011">1011</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="gb9ccdfee5c7986ff236a6cde66a9af2f"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_is_errno_nonzero" ref="gb9ccdfee5c7986ff236a6cde66a9af2f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_is_errno_nonzero           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See if errno is set. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if errno is not 0 </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01001">1001</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="g079d34a9d90759e6b3ebebab424c696e"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_standard_session_servicedirs" ref="g079d34a9d90759e6b3ebebab424c696e" args="(DBusList **dirs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_standard_session_servicedirs           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&nbsp;</td>
          <td class="paramname"> <em>dirs</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the standard directories for a session bus to look for service activation files. 
<p>
On UNIX this should be the standard xdg freedesktop.org data directories:<p>
XDG_DATA_HOME=${XDG_DATA_HOME-$HOME/.local/share} XDG_DATA_DIRS=${XDG_DATA_DIRS-/usr/local/share:/usr/share}<p>
and<p>
DBUS_DATADIR<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dirs</em>&nbsp;</td><td>the directory list we are returning </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on OOM </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">2983</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02331">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00175">_dbus_getenv()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00385">_dbus_homedir_from_current_process()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g5193160c3dc144af34b250cfb5b0a61e"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_standard_system_servicedirs" ref="g5193160c3dc144af34b250cfb5b0a61e" args="(DBusList **dirs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_standard_system_servicedirs           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&nbsp;</td>
          <td class="paramname"> <em>dirs</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the standard directories for a system bus to look for service activation files. 
<p>
On UNIX this should be the standard xdg freedesktop.org data directories:<p>
XDG_DATA_DIRS=${XDG_DATA_DIRS-/usr/local/share:/usr/share}<p>
and<p>
DBUS_DATADIR<p>
On Windows there is no system bus and this function can return nothing.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dirs</em>&nbsp;</td><td>the directory list we are returning </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on OOM </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03072">3072</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00175">_dbus_getenv()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g3ecdae905f2d9e95fd35891b20f06532"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_get_tmpdir" ref="g3ecdae905f2d9e95fd35891b20f06532" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* _dbus_get_tmpdir           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the temporary files directory by inspecting the environment variables TMPDIR, TMP, and TEMP in that order. 
<p>
If none of those are set "/tmp" is returned<p>
<dl compact><dt><b>Returns:</b></dt><dd>location of temp directory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02710">2710</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gb846071a4de54cb7e518654f9375313a"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_getenv" ref="gb846071a4de54cb7e518654f9375313a" args="(const char *varname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * _dbus_getenv           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>varname</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Wrapper for getenv(). 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>varname</em>&nbsp;</td><td>name of environment variable </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>value of environment variable or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if unset </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00175">175</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00072">_dbus_abort()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03072">_dbus_get_standard_system_servicedirs()</a>.
</div>
</div><p>
<a class="anchor" name="g870807b07f3b1c1a725eb9408edad147"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_getpid" ref="g870807b07f3b1c1a725eb9408edad147" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusSysdeps.html#g1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a> _dbus_getpid           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets our process ID. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>process ID </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01675">1675</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01634">_dbus_credentials_add_from_current_process()</a>.
</div>
</div><p>
<a class="anchor" name="gfdae31b3b61299dbaaccfcb1205a6f30"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_listen_tcp_socket" ref="gfdae31b3b61299dbaaccfcb1205a6f30" args="(const char *host, const char *port, const char *family, DBusString *retport, int **fds_p, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_listen_tcp_socket           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>family</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>retport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int **&nbsp;</td>
          <td class="paramname"> <em>fds_p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a socket and binds it to the given path, then listens on the socket. 
<p>
The socket is set to be nonblocking. In case of port=0 a random free port is used and returned in the port parameter. If inaddr_any is specified, the hostname is ignored.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>host</em>&nbsp;</td><td>the host name to listen on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>the port to listen on, if zero a free port will be used </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>family</em>&nbsp;</td><td>the address family to listen on, NULL for all </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>retport</em>&nbsp;</td><td>string to return the actual port listened on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fds_p</em>&nbsp;</td><td>location to store returned file descriptors </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for errors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of listening file descriptors or -1 on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00854">854</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-internals_8h-source.html#l00159">_DBUS_ZERO</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-memory_8c-source.html#l00544">dbus_realloc()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-server-socket_8c-source.html#l00369">_dbus_server_new_for_tcp_socket()</a>.
</div>
</div><p>
<a class="anchor" name="g7c83e2e20811330d1d1b2f6249dbe66c"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_make_file_world_readable" ref="g7c83e2e20811330d1d1b2f6249dbe66c" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_make_file_world_readable           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Makes the file readable by every user in the system. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the filename </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error location </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the file's permissions could be changed. </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02195">2195</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gf0c64c612b8d45429515d14849f81a57"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_open_tcp_socket" ref="gf0c64c612b8d45429515d14849f81a57" args="(int *fd, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_open_tcp_socket           </td>
          <td>(</td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Socket interface. 
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000063">Todo:</a></b></dt><dd>Use for the file descriptors a struct<ul>
<li>struct DBusSocket{ int d; }; - instead of int to get type-safety which will be checked by the compiler.</li></ul>
</dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00104">104</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00746">_dbus_connect_tcp_socket()</a>.
</div>
</div><p>
<a class="anchor" name="g96da816095ec7fec07136a6019745bcb"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_parse_unix_group_from_config" ref="g96da816095ec7fec07136a6019745bcb" args="(const DBusString *groupname, dbus_gid_t *gid_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_parse_unix_group_from_config           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>groupname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *&nbsp;</td>
          <td class="paramname"> <em>gid_p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse a UNIX group from the bus config file. 
<p>
On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>).<p>
<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>&nbsp;</td><td>the groupname text </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>gid_p</em>&nbsp;</td><td>place to return the gid </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00904">904</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00128">_dbus_get_group_id()</a>.
</div>
</div><p>
<a class="anchor" name="g437470fc327b0169fc14a0b66a6e5278"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_parse_unix_user_from_config" ref="g437470fc327b0169fc14a0b66a6e5278" args="(const DBusString *username, dbus_uid_t *uid_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_parse_unix_user_from_config           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *&nbsp;</td>
          <td class="paramname"> <em>uid_p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse a UNIX user from the bus config file. 
<p>
On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>).<p>
<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>&nbsp;</td><td>the username text </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uid_p</em>&nbsp;</td><td>place to return the uid </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00888">888</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00114">_dbus_get_user_id()</a>.
</div>
</div><p>
<a class="anchor" name="g6d80876bcae54f47cde79d0bce20321d"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_path_is_absolute" ref="g6d80876bcae54f47cde79d0bce20321d" args="(const DBusString *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_path_is_absolute           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks whether the filename is an absolute path. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the filename </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if an absolute path </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00525">525</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
</div>
</div><p>
<a class="anchor" name="g1b30aa55e8758ed6e1b62e0f86866543"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_pid_for_log" ref="g1b30aa55e8758ed6e1b62e0f86866543" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long _dbus_pid_for_log           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The only reason this is separate from <a class="el" href="group__DBusSysdeps.html#g870807b07f3b1c1a725eb9408edad147">_dbus_getpid()</a> is to allow it on Windows for logging but not for other purposes. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>process ID to put in log messages </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01696">1696</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00072">_dbus_abort()</a>, and <a class="el" href="dbus-internals_8c-source.html#l00266">_dbus_warn_check_failed()</a>.
</div>
</div><p>
<a class="anchor" name="g2dfca26ba16636422902f7f3a62bd1ce"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_pipe_close" ref="g2dfca26ba16636422902f7f3a62bd1ce" args="(DBusPipe *pipe, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_pipe_close           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&nbsp;</td>
          <td class="paramname"> <em>pipe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
close a pipe. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pipe</em>&nbsp;</td><td>the pipe instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for an error </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00212">212</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00245">_dbus_pipe_invalidate()</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00273">DBusPipe::fd_or_handle</a>.
</div>
</div><p>
<a class="anchor" name="g519116659eab383f661fd26dbc43386d"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_pipe_init_stdout" ref="g519116659eab383f661fd26dbc43386d" args="(DBusPipe *pipe)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_pipe_init_stdout           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&nbsp;</td>
          <td class="paramname"> <em>pipe</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
init a pipe with stdout 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pipe</em>&nbsp;</td><td>the pipe </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00210">210</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00198">_dbus_pipe_init()</a>.
</div>
</div><p>
<a class="anchor" name="g17d2d00d7231e37aff69cbac3217ca73"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_pipe_invalidate" ref="g17d2d00d7231e37aff69cbac3217ca73" args="(DBusPipe *pipe)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_pipe_invalidate           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&nbsp;</td>
          <td class="paramname"> <em>pipe</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes a pipe to an invalid value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pipe</em>&nbsp;</td><td>the pipe </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00245">245</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00273">DBusPipe::fd_or_handle</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00212">_dbus_pipe_close()</a>.
</div>
</div><p>
<a class="anchor" name="g97e74bab54f40d8fedf30c97fbd12960"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_pipe_is_stdout_or_stderr" ref="g97e74bab54f40d8fedf30c97fbd12960" args="(DBusPipe *pipe)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_pipe_is_stdout_or_stderr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&nbsp;</td>
          <td class="paramname"> <em>pipe</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if a pipe is stdout or stderr. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pipe</em>&nbsp;</td><td>the pipe instance </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if pipe is one of the standard out/err channels </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00235">235</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00273">DBusPipe::fd_or_handle</a>.
</div>
</div><p>
<a class="anchor" name="gb49c65d02349d01ee291a5c49f7a1ed9"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_pipe_is_valid" ref="gb49c65d02349d01ee291a5c49f7a1ed9" args="(DBusPipe *pipe)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_pipe_is_valid           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&nbsp;</td>
          <td class="paramname"> <em>pipe</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
check if a pipe is valid; pipes can be set invalid, similar to a -1 file descriptor. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pipe</em>&nbsp;</td><td>the pipe instance </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if pipe is not valid </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00223">223</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00273">DBusPipe::fd_or_handle</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>.
</div>
</div><p>
<a class="anchor" name="g95ab99cceeaa29082a02f0b971d9e9e5"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_pipe_write" ref="g95ab99cceeaa29082a02f0b971d9e9e5" args="(DBusPipe *pipe, const DBusString *buffer, int start, int len, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_pipe_write           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&nbsp;</td>
          <td class="paramname"> <em>pipe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
write data to a pipe. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pipe</em>&nbsp;</td><td>the pipe instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>the buffer to write data from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>the first byte in the buffer to write </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>the number of bytes to try to write </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error return </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of bytes written or -1 on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00186">186</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00330">_dbus_write()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00273">DBusPipe::fd_or_handle</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>.
</div>
</div><p>
<a class="anchor" name="gc1cdb5995dcef6dd54399ab610ae689a"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_poll" ref="gc1cdb5995dcef6dd54399ab610ae689a" args="(DBusPollFD *fds, int n_fds, int timeout_milliseconds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_poll           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPollFD.html">DBusPollFD</a> *&nbsp;</td>
          <td class="paramname"> <em>fds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n_fds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>timeout_milliseconds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Wrapper for poll(). 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fds</em>&nbsp;</td><td>the file descriptors to poll </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_fds</em>&nbsp;</td><td>number of descriptors in the array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>timeout_milliseconds</em>&nbsp;</td><td>timeout or -1 for infinite </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>numbers of fds with revents, or &lt;0 on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01827">1827</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00212">_DBUS_POLLERR</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00214">_DBUS_POLLHUP</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00206">_DBUS_POLLIN</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00216">_DBUS_POLLNVAL</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00210">_DBUS_POLLOUT</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00208">_DBUS_POLLPRI</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00225">DBusPollFD::revents</a>.
</div>
</div><p>
<a class="anchor" name="g8646ab2ef727fcc862c7904113c88a8d"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_print_backtrace" ref="g8646ab2ef727fcc862c7904113c88a8d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_print_backtrace           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
On GNU libc systems, print a crude backtrace to stderr. 
<p>
On other systems, print "no backtrace support" and block for possible gdb attachment if an appropriate environment variable is set. 
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02596">2596</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00072">_dbus_abort()</a>.
</div>
</div><p>
<a class="anchor" name="gffaf8b5bb832c20a8ccb10f012920776"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_printf_string_upper_bound" ref="gffaf8b5bb832c20a8ccb10f012920776" args="(const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_printf_string_upper_bound           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Measure the length of the given format string and arguments, not including the terminating nul. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>a printf-style format string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>arguments for the format string </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>length of the given format string and args </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02696">2696</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l01192">_dbus_string_append_printf_valist()</a>.
</div>
</div><p>
<a class="anchor" name="g9906c86bebb51358f0d8df6a42af30f6"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_read_credentials_socket" ref="g9906c86bebb51358f0d8df6a42af30f6" args="(int client_fd, DBusCredentials *credentials, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_read_credentials_socket           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>client_fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&nbsp;</td>
          <td class="paramname"> <em>credentials</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reads a single byte which must be nul (an error occurs otherwise), and reads unix credentials if available. 
<p>
Clears the credentials object, then adds pid/uid if available, so any previous credentials stored in the object are lost.<p>
Return value indicates whether a byte was read, not whether we got valid credentials. On some systems, such as Linux, reading/writing the byte isn't actually required, but we do it anyway just to avoid multiple codepaths.<p>
Fails if no byte is available, so you must select() first.<p>
The point of the byte is that on some systems we have to use sendmsg()/recvmsg() to transmit credentials.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>client_fd</em>&nbsp;</td><td>the client file descriptor </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>credentials</em>&nbsp;</td><td>object to add client credentials to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>location to store error code </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01112">1112</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-credentials_8c-source.html#l00144">_dbus_credentials_add_unix_pid()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00159">_dbus_credentials_add_unix_uid()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00374">_dbus_credentials_clear()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00111">DBUS_PID_FORMAT</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00104">DBUS_PID_UNSET</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00113">DBUS_UID_FORMAT</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00106">DBUS_UID_UNSET</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g3f073afc8ef8397471531baf513e1bb5"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_read_local_machine_uuid" ref="g3f073afc8ef8397471531baf513e1bb5" args="(DBusGUID *machine_id, dbus_bool_t create_if_not_found, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_read_local_machine_uuid           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="unionDBusGUID.html">DBusGUID</a> *&nbsp;</td>
          <td class="paramname"> <em>machine_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td>
          <td class="paramname"> <em>create_if_not_found</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reads the uuid of the machine we're running on from the dbus configuration. 
<p>
Optionally try to create it (only root can do this usually).<p>
On UNIX, reads a file that gets created by dbus-uuidgen in a post-install script. On Windows, if there's a standard machine uuid we could just use that, but I can't find one with the right properties (the hardware profile guid can change without rebooting I believe). If there's no standard one we might want to use the registry instead of a file for this, and I'm not sure how we'd ensure the uuid gets created.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>machine_id</em>&nbsp;</td><td>guid to init with the machine's uuid </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>create_if_not_found</em>&nbsp;</td><td>try to create the uuid if it doesn't exist </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>the error return </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the error is set </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02952">2952</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8c-source.html#l00666">_dbus_read_uuid_file()</a>, and <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>.
<p>
Referenced by <a class="el" href="dbus-internals_8c-source.html#l00715">_dbus_get_local_machine_uuid_encoded()</a>, and <a class="el" href="dbus-uuidgen_8c-source.html#l00076">dbus_internal_do_not_use_get_uuid()</a>.
</div>
</div><p>
<a class="anchor" name="g6fe72fa1c0484ac5594b08145ea19530"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_read_socket" ref="g6fe72fa1c0484ac5594b08145ea19530" args="(int fd, DBusString *buffer, int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_read_socket           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>count</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Like <a class="el" href="group__DBusSysdepsUnix.html#gf52cb1d5b9fc5611808ce32eff898c28">_dbus_read()</a>, but only works on sockets so is available on Windows. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>the socket </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>string to append data to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>max amount of data to read </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>number of bytes appended to the string </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00149">149</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>.
</div>
</div><p>
<a class="anchor" name="g6cc9916aa1dde4d44072ee85b5691b5b"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_send_credentials_socket" ref="g6cc9916aa1dde4d44072ee85b5691b5b" args="(int server_fd, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_send_credentials_socket           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>server_fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sends a single nul byte with our UNIX credentials as ancillary data. 
<p>
Returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the data was successfully written. On systems that don't support sending credentials, just writes a byte, doesn't send any credentials. On some systems, such as Linux, reading/writing the byte isn't actually required, but we do it anyway just to avoid multiple codepaths.<p>
Fails if no byte can be written, so you must select() first.<p>
The point of the byte is that on some systems we have to use sendmsg()/recvmsg() to transmit credentials.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>server_fd</em>&nbsp;</td><td>file descriptor for connection to server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for error code </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the byte was sent </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01315">1315</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g4aa7500366dad2dd6d3fa97b3aa7165b"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_set_signal_handler" ref="g4aa7500366dad2dd6d3fa97b3aa7165b" args="(int sig, DBusSignalHandler handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_set_signal_handler           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#gdd0067ae8ae20e747b818697395d420f">DBusSignalHandler</a>&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Installs a UNIX signal handler. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sig</em>&nbsp;</td><td>the signal to handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>the handler </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00422">422</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g55de2c2020b6733ed0190c6459578588"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_setenv" ref="g55de2c2020b6733ed0190c6459578588" args="(const char *varname, const char *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_setenv           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>varname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Wrapper for setenv(). 
<p>
If the value is <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, unsets the environment variable.<p>
There is an unfixable memleak in that it is unsafe to free memory malloced for use with setenv. This is because we can not rely on internal implementation details of the underlying libc library.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>varname</em>&nbsp;</td><td>name of environment variable </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>value of environment variable </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success. </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00104">104</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g1153b4669819148af6b3f6f2b7c9183a"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_sleep_milliseconds" ref="g1153b4669819148af6b3f6f2b7c9183a" args="(int milliseconds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_sleep_milliseconds           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>milliseconds</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sleeps the given number of milliseconds. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>milliseconds</em>&nbsp;</td><td>number of milliseconds </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02376">2376</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00072">_dbus_abort()</a>.
</div>
</div><p>
<a class="anchor" name="g9393ded03e3b9812e4ba99b437ea992d"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_split_paths_and_append" ref="g9393ded03e3b9812e4ba99b437ea992d" args="(DBusString *dirs, const char *suffix, DBusList **dir_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_split_paths_and_append           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>dirs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>suffix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&nbsp;</td>
          <td class="paramname"> <em>dir_list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Split paths into a list of char strings. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dirs</em>&nbsp;</td><td>string with pathes </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>suffix</em>&nbsp;</td><td>string concated to each path in dirs </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dir_list</em>&nbsp;</td><td>contains a list of splitted pathes return <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> is pathes could be splittes,<a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> in oom case </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00259">259</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02331">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-list_8c-source.html#l00246">_dbus_list_append()</a>, <a class="el" href="dbus-list_8c-source.html#l00549">_dbus_list_clear()</a>, <a class="el" href="dbus-list_8c-source.html#l00789">_dbus_list_foreach()</a>, <a class="el" href="dbus-string_8c-source.html#l02168">_dbus_string_chop_white()</a>, <a class="el" href="dbus-string_8c-source.html#l00697">_dbus_string_copy_data()</a>, <a class="el" href="dbus-string_8c-source.html#l01567">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string_8c-source.html#l01783">_dbus_string_find()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03072">_dbus_get_standard_system_servicedirs()</a>.
</div>
</div><p>
<a class="anchor" name="g04e98ad0e3a181f0a5921a4cbc49cf08"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_stat" ref="g04e98ad0e3a181f0a5921a4cbc49cf08" args="(const DBusString *filename, DBusStat *statbuf, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_stat           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusStat.html">DBusStat</a> *&nbsp;</td>
          <td class="paramname"> <em>statbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
stat() wrapper. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the filename to stat </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statbuf</em>&nbsp;</td><td>the stat info to fill in </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for error </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error was set </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00542">542</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00348">DBusStat::atime</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00350">DBusStat::ctime</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00346">DBusStat::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00343">DBusStat::mode</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00349">DBusStat::mtime</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00344">DBusStat::nlink</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00347">DBusStat::size</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00345">DBusStat::uid</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>.
</div>
</div><p>
<a class="anchor" name="g56de84795d6df4162ad79b3be7af7588"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_strerror_from_errno" ref="g56de84795d6df4162ad79b3be7af7588" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* _dbus_strerror_from_errno           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get error message from errno. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>_dbus_strerror(errno) </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01031">1031</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="gfa79c1113fa75419dcc5ee4290e06608"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_string_get_dirname" ref="gfa79c1113fa75419dcc5ee4290e06608" args="(const DBusString *filename, DBusString *dirname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_get_dirname           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>dirname</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the directory name from a complete filename. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the filename </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dirname</em>&nbsp;</td><td>string to append directory name to </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00985">985</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l01567">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string-util_8c-source.html#l00089">_dbus_string_find_byte_backward()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gb974e23b29afbbae447129c273173502"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_string_save_to_file" ref="gb974e23b29afbbae447129c273173502" args="(const DBusString *str, const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_save_to_file           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Writes a string out to a file. 
<p>
If the file exists, it will be atomically overwritten by the new data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string to write out </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the file to save string to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>error to be filled in on failure </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">2057</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00860">_dbus_generate_random_ascii()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00330">_dbus_write()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="ge7be34dbffb6458578e86c59a26d4fad"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_threads_init_platform_specific" ref="ge7be34dbffb6458578e86c59a26d4fad" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_threads_init_platform_specific           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize threads as in <a class="el" href="group__DBusThreads.html#gf508fbf3e39435491244b856183a1296">dbus_threads_init_default()</a>, appropriately for the platform. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-pthread_8c-source.html#l00321">321</a> of file <a class="el" href="dbus-sysdeps-pthread_8c-source.html">dbus-sysdeps-pthread.c</a>.
<p>
References <a class="el" href="dbus-threads_8c-source.html#l00545">dbus_threads_init()</a>.
<p>
Referenced by <a class="el" href="dbus-threads_8c-source.html#l00671">dbus_threads_init_default()</a>.
</div>
</div><p>
<a class="anchor" name="g79647ec21c7edccd1510808ea0ca3779"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_unix_groups_from_uid" ref="g79647ec21c7edccd1510808ea0ca3779" args="(dbus_uid_t uid, dbus_gid_t **group_ids, int *n_group_ids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_unix_groups_from_uid           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&nbsp;</td>
          <td class="paramname"> <em>uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **&nbsp;</td>
          <td class="paramname"> <em>group_ids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>n_group_ids</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets all groups corresponding to the given UNIX user ID. 
<p>
On UNIX, just calls <a class="el" href="group__DBusInternalsUtils.html#ge9408936869314101f8ea13dfa5ba968">_dbus_groups_from_uid()</a>. On Windows, should always fail since we don't know any UNIX groups.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uid</em>&nbsp;</td><td>the UID </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>group_ids</em>&nbsp;</td><td>return location for array of group IDs </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_group_ids</em>&nbsp;</td><td>return location for length of returned array </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the UID existed and we got some credentials </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00921">921</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00354">_dbus_groups_from_uid()</a>.
</div>
</div><p>
<a class="anchor" name="ged2e025454364fbe31cd9b6538c9a936"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_unix_user_is_at_console" ref="ged2e025454364fbe31cd9b6538c9a936" args="(dbus_uid_t uid, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_unix_user_is_at_console           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&nbsp;</td>
          <td class="paramname"> <em>uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks to see if the UNIX user ID is at the console. 
<p>
Should always fail on Windows (set the error to <a class="el" href="group__DBusProtocol.html#g33122bcaf8f5896ec222c755b6effb40">DBUS_ERROR_NOT_SUPPORTED</a>).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uid</em>&nbsp;</td><td>UID of person to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for errors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the UID is the same as the console user and there are no errors </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00938">938</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>.
</div>
</div><p>
<a class="anchor" name="g849177164bc5e73435104f57c631ed7e"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_unix_user_is_process_owner" ref="g849177164bc5e73435104f57c631ed7e" args="(dbus_uid_t uid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_unix_user_is_process_owner           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks to see if the UNIX user ID matches the UID of the process. 
<p>
Should always return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on Windows.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uid</em>&nbsp;</td><td>the UNIX user ID </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if this uid owns the process. </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00953">953</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01684">_dbus_getuid()</a>.
</div>
</div><p>
<a class="anchor" name="g31ec42cef2d15ca358e737bb5f19c5cf"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_user_at_console" ref="g31ec42cef2d15ca358e737bb5f19c5cf" args="(const char *username, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_user_at_console           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks if user is at the console. 
<p>
<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>&nbsp;</td><td>user to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for errors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> is the user is at the consolei and there are no errors </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00482">482</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00470">_dbus_file_exists()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>.
</div>
</div><p>
<a class="anchor" name="g45f661c5a089ed45233a1acabaf31964"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_verify_daemon_user" ref="g45f661c5a089ed45233a1acabaf31964" args="(const char *user)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_verify_daemon_user           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>user</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Verify that after the fork we can successfully change to this user. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>user</em>&nbsp;</td><td>the username given in the daemon configuration </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if username is valid </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00258">258</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00164">_dbus_get_user_id_and_primary_group()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g912d34a7e40b3a57864972e6d6ab65ba"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_windows_user_is_process_owner" ref="g912d34a7e40b3a57864972e6d6ab65ba" args="(const char *windows_sid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_windows_user_is_process_owner           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>windows_sid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks to see if the Windows user SID matches the owner of the process. 
<p>
Should always return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on UNIX.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>windows_sid</em>&nbsp;</td><td>the Windows user SID </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if this user owns the process. </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00966">966</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
</div>
</div><p>
<a class="anchor" name="g7461c6fa553c30f4eb8482675e86668c"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_write_pid_file" ref="g7461c6fa553c30f4eb8482675e86668c" args="(const DBusString *filename, unsigned long pid, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_write_pid_file           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&nbsp;</td>
          <td class="paramname"> <em>pid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a file containing the process ID. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>the filename to write to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pid</em>&nbsp;</td><td>our process ID </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>return location for errors </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00202">202</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>.
</div>
</div><p>
<a class="anchor" name="g346cadd9b0f7d0ae1cd19007b2e4c2de"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_write_socket" ref="g346cadd9b0f7d0ae1cd19007b2e4c2de" args="(int fd, const DBusString *buffer, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_write_socket           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Like <a class="el" href="group__DBusSysdepsUnix.html#g3a789bcdfd3d468c2bf917fa5081b27f">_dbus_write()</a>, but only supports sockets and is thus available on Windows. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>the file descriptor to write </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>the buffer to write data from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>the first byte in the buffer to write </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>the number of bytes to try to write </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of bytes written or -1 on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00167">167</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00330">_dbus_write()</a>.
</div>
</div><p>
<a class="anchor" name="g02da720105c2a2397b7c687c5ca81174"></a><!-- doxytag: member="dbus-sysdeps.h::_dbus_write_socket_two" ref="g02da720105c2a2397b7c687c5ca81174" args="(int fd, const DBusString *buffer1, int start1, int len1, const DBusString *buffer2, int start2, int len2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_write_socket_two           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>buffer2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Like <a class="el" href="group__DBusSysdepsUnix.html#g506a183b1f6970d1bfca165ab3de4736">_dbus_write_two()</a> but only works on sockets and is thus available on Windows. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>the file descriptor </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer1</em>&nbsp;</td><td>first buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start1</em>&nbsp;</td><td>first byte to write in first buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len1</em>&nbsp;</td><td>number of bytes to write from first buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer2</em>&nbsp;</td><td>second buffer, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start2</em>&nbsp;</td><td>first byte to write in second buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len2</em>&nbsp;</td><td>number of bytes to write in second buffer </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>total bytes written from both buffers, or -1 on error </dd></dl>

<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00240">240</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00376">_dbus_write_two()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:15 2009 for D-Bus by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

Anon7 - 2021