Sophie

Sophie

distrib > Mandriva > 2007.0 > i586 > by-pkgid > ad1ba1135a9c9eeffc2e538163e00373 > files > 246

libCommonC++2_1.4-devel-1.4.1-1mdv2007.0.i586.rpm

<!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>GNU CommonC++: ost::Process Class Reference</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.6 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li id="current"><a href="classes.html"><span>Classes</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>
    <li><a href="examples.html"><span>Examples</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="namespaceost.html">ost</a>::<a class="el" href="classost_1_1_process.html">Process</a></div>
<h1>ost::Process Class Reference</h1><!-- doxytag: class="ost::Process" -->A class for containing portable process related functions that help create portable code.Peocess wrapper class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="process_8h-source.html">process.h</a>&gt;</code>
<p>
<a href="classost_1_1_process-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef RETSIGTYPE(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a> )(int)</td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#3f8660a112bf25128a743fb599681cf2">lock</a> (bool future=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock a process in memory.  <a href="#3f8660a112bf25128a743fb599681cf2"></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="classost_1_1_process.html#3cc2b549525e914931a2829faccc4f44">unlock</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unlock process pages.  <a href="#3cc2b549525e914931a2829faccc4f44"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#43102f60a1dd16da2d812e9c6d77d2b9">detach</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Detach current process into a daemon, posix only.  <a href="#43102f60a1dd16da2d812e9c6d77d2b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#65113d14afb60393a852c859e0ddf037">attach</a> (const char *devname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attach the current process to another device or i/o session.  <a href="#65113d14afb60393a852c859e0ddf037"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#d864f14f892fd2ff09483748e7d6a328">setPosixSignal</a> (int signo, <a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a> handler)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a posix compliant signal handler.  <a href="#d864f14f892fd2ff09483748e7d6a328"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#df3c850256b0e817298ddeb95f4b4630">setInterruptSignal</a> (int signo, <a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a> handler)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set system call interuptable signal handler.  <a href="#df3c850256b0e817298ddeb95f4b4630"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#f689ef760fdefb3dfb998950ad1c62a9">spawn</a> (const char *exec, const char **argv, bool wait=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Spawn a process and wait for it's exit code.  <a href="#f689ef760fdefb3dfb998950ad1c62a9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#cc251d46caa853b285ba1d4e19d500ac">join</a> (int pid)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the exit status of another process, waiting for it to exit.  <a href="#cc251d46caa853b285ba1d4e19d500ac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#6a94b9da9e6f879663520f774b140249">cancel</a> (int pid, int sig=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cancel a running child process.  <a href="#6a94b9da9e6f879663520f774b140249"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#24a26249ddd3dd99104d71d37bf02064">getEnv</a> (const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get system environment.  <a href="#24a26249ddd3dd99104d71d37bf02064"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#94a4b4f321b076d59b0fe8902c6ba794">setEnv</a> (const char *name, const char *value, bool overwrite)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set system environment in a standard manner.  <a href="#94a4b4f321b076d59b0fe8902c6ba794"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#9d7c073f3c473f7eead6a6613ff98c00">getConfigDir</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get etc prefix path.  <a href="#9d7c073f3c473f7eead6a6613ff98c00"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#3d99258c5b247accaaf8fa5344288428">getHomeDir</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get home directory.  <a href="#3d99258c5b247accaaf8fa5344288428"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#1d1fd732ed82e74b8f749ad2e171361a">getUser</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get user name.  <a href="#1d1fd732ed82e74b8f749ad2e171361a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#2682d8f8aec63d61201b247b4d437aa3">setUser</a> (const char *id, bool grp=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set user id by name.  <a href="#2682d8f8aec63d61201b247b4d437aa3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#bf659310fab24472fb1b8f9797383b8e">setGroup</a> (const char *id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the effective group id by name.  <a href="#bf659310fab24472fb1b8f9797383b8e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#00d16fe1c73744546658a1a0f13906df">getPageSize</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the effective operating system page size.  <a href="#00d16fe1c73744546658a1a0f13906df"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#6b17c10f9f12ba9a965400c87e17a62a">setPriority</a> (int pri)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to set process priority and optionally enable realtime.  <a href="#6b17c10f9f12ba9a965400c87e17a62a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#4751f7ca53e7c15ae0ab5e29952fe65d">setScheduler</a> (const char *policy)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Used to set process scheduling policy.  <a href="#4751f7ca53e7c15ae0ab5e29952fe65d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#26cf80b6ae71b5baa323fe8e0ede944b">setRealtime</a> (int pri=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Portable shortcut for setting realtime.  <a href="#26cf80b6ae71b5baa323fe8e0ede944b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#fdd74b2a47c76ad88df0ba81991ef947">isScheduler</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if scheduler settable.  <a href="#fdd74b2a47c76ad88df0ba81991ef947"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#5f2fe33d0088b1c2db43613581fe04e2">isRealtime</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if realtime scheduling.  <a href="#5f2fe33d0088b1c2db43613581fe04e2"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A class for containing portable process related functions that help create portable code.Peocess wrapper class. 
<p>
These are typically referenced thru Process::xxx static member functions. Many of these members are used both for win32 and posix systems although some may be platform specific.<p>
<dl compact><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; </dd></dl>

<p>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="0d09148ffbdd15032056c1ae2510a741"></a><!-- doxytag: member="ost::Process::Trap" ref="0d09148ffbdd15032056c1ae2510a741" args=")(int)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">typedef RETSIGTYPE(* <a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">ost::Process::Trap</a>)(int)          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="65113d14afb60393a852c859e0ddf037"></a><!-- doxytag: member="ost::Process::attach" ref="65113d14afb60393a852c859e0ddf037" args="(const char *devname)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static void ost::Process::attach           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>devname</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Attach the current process to another device or i/o session. 
<p>
It is deamonified and dissasociated with the prior parent process and controlling terminal.<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>devname</em>&nbsp;</td><td>path to attach to. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="6a94b9da9e6f879663520f774b140249"></a><!-- doxytag: member="ost::Process::cancel" ref="6a94b9da9e6f879663520f774b140249" args="(int pid, int sig=0)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static bool ost::Process::cancel           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>pid</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>sig</em> = <code>0</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Cancel a running child process. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>0 on success. </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>pid</em>&nbsp;</td><td>process id. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sig</em>&nbsp;</td><td>cancel signal to apply. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="43102f60a1dd16da2d812e9c6d77d2b9"></a><!-- doxytag: member="ost::Process::detach" ref="43102f60a1dd16da2d812e9c6d77d2b9" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static void ost::Process::detach           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Detach current process into a daemon, posix only. 
<p>
Perhaps a similar method can be used for creating win32 "services"?     </td>
  </tr>
</table>
<a class="anchor" name="9d7c073f3c473f7eead6a6613ff98c00"></a><!-- doxytag: member="ost::Process::getConfigDir" ref="9d7c073f3c473f7eead6a6613ff98c00" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static const char* ost::Process::getConfigDir           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get etc prefix path. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>etc prefix. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="24a26249ddd3dd99104d71d37bf02064"></a><!-- doxytag: member="ost::Process::getEnv" ref="24a26249ddd3dd99104d71d37bf02064" args="(const char *name)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static const char* ost::Process::getEnv           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>name</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get system environment. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>system environ symbol. </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>name</em>&nbsp;</td><td>of symbol. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="3d99258c5b247accaaf8fa5344288428"></a><!-- doxytag: member="ost::Process::getHomeDir" ref="3d99258c5b247accaaf8fa5344288428" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static const char* ost::Process::getHomeDir           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get home directory. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>user home directory. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="00d16fe1c73744546658a1a0f13906df"></a><!-- doxytag: member="ost::Process::getPageSize" ref="00d16fe1c73744546658a1a0f13906df" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static size_t ost::Process::getPageSize           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return the effective operating system page size. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>system page size. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="1d1fd732ed82e74b8f749ad2e171361a"></a><!-- doxytag: member="ost::Process::getUser" ref="1d1fd732ed82e74b8f749ad2e171361a" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static const char* ost::Process::getUser           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get user name. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>user login id. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="5f2fe33d0088b1c2db43613581fe04e2"></a><!-- doxytag: member="ost::Process::isRealtime" ref="5f2fe33d0088b1c2db43613581fe04e2" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static bool ost::Process::isRealtime           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline, static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return true if realtime scheduling. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="fdd74b2a47c76ad88df0ba81991ef947"></a><!-- doxytag: member="ost::Process::isScheduler" ref="fdd74b2a47c76ad88df0ba81991ef947" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static bool ost::Process::isScheduler           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return true if scheduler settable. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="cc251d46caa853b285ba1d4e19d500ac"></a><!-- doxytag: member="ost::Process::join" ref="cc251d46caa853b285ba1d4e19d500ac" args="(int pid)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static int ost::Process::join           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>pid</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get the exit status of another process, waiting for it to exit. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>exit code from process. </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>pid</em>&nbsp;</td><td>process id. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="3f8660a112bf25128a743fb599681cf2"></a><!-- doxytag: member="ost::Process::lock" ref="3f8660a112bf25128a743fb599681cf2" args="(bool future=true)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">bool ost::Process::lock           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">bool&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>future</em> = <code>true</code>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Lock a process in memory. 
<p>
Ideally you should be deep enough where additional memallocs for functions will not kill you, or use false for future.<p>
<dl compact><dt><b>Returns:</b></dt><dd>true if successful. </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>future</em>&nbsp;</td><td>pages as well... </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="94a4b4f321b076d59b0fe8902c6ba794"></a><!-- doxytag: member="ost::Process::setEnv" ref="94a4b4f321b076d59b0fe8902c6ba794" args="(const char *name, const char *value, bool overwrite)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static void ost::Process::setEnv           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>overwrite</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set system environment in a standard manner. 
<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>name</em>&nbsp;</td><td>of environment symbol to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>of environment symbol. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>overwrite</em>&nbsp;</td><td>true if replace existing symbol. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="bf659310fab24472fb1b8f9797383b8e"></a><!-- doxytag: member="ost::Process::setGroup" ref="bf659310fab24472fb1b8f9797383b8e" args="(const char *id)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static bool ost::Process::setGroup           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>id</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the effective group id by name. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>true if successful. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="df3c850256b0e817298ddeb95f4b4630"></a><!-- doxytag: member="ost::Process::setInterruptSignal" ref="df3c850256b0e817298ddeb95f4b4630" args="(int signo, Trap handler)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static <a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a> ost::Process::setInterruptSignal           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>signo</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>handler</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set system call interuptable signal handler. 
<p>
return previous handler. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>signo</em>&nbsp;</td><td>signal no. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>trap handler. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="d864f14f892fd2ff09483748e7d6a328"></a><!-- doxytag: member="ost::Process::setPosixSignal" ref="d864f14f892fd2ff09483748e7d6a328" args="(int signo, Trap handler)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static <a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a> ost::Process::setPosixSignal           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>signo</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="classost_1_1_process.html#0d09148ffbdd15032056c1ae2510a741">Trap</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>handler</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set a posix compliant signal handler. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>previous handler. </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>signo</em>&nbsp;</td><td>signal no. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>trap handler. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="6b17c10f9f12ba9a965400c87e17a62a"></a><!-- doxytag: member="ost::Process::setPriority" ref="6b17c10f9f12ba9a965400c87e17a62a" args="(int pri)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static void ost::Process::setPriority           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>pri</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Used to set process priority and optionally enable realtime. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="26cf80b6ae71b5baa323fe8e0ede944b"></a><!-- doxytag: member="ost::Process::setRealtime" ref="26cf80b6ae71b5baa323fe8e0ede944b" args="(int pri=0)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static void ost::Process::setRealtime           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>pri</em> = <code>0</code>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Portable shortcut for setting realtime. 
<p>
..     </td>
  </tr>
</table>
<a class="anchor" name="4751f7ca53e7c15ae0ab5e29952fe65d"></a><!-- doxytag: member="ost::Process::setScheduler" ref="4751f7ca53e7c15ae0ab5e29952fe65d" args="(const char *policy)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static void ost::Process::setScheduler           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>policy</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Used to set process scheduling policy. 
<p>
    </td>
  </tr>
</table>
<a class="anchor" name="2682d8f8aec63d61201b247b4d437aa3"></a><!-- doxytag: member="ost::Process::setUser" ref="2682d8f8aec63d61201b247b4d437aa3" args="(const char *id, bool grp=true)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static bool ost::Process::setUser           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>grp</em> = <code>true</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set user id by name. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>true if successful. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="f689ef760fdefb3dfb998950ad1c62a9"></a><!-- doxytag: member="ost::Process::spawn" ref="f689ef760fdefb3dfb998950ad1c62a9" args="(const char *exec, const char **argv, bool wait=true)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static int ost::Process::spawn           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>exec</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char **&nbsp;</td>
          <td class="mdname" nowrap> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>wait</em> = <code>true</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Spawn a process and wait for it's exit code. 
<p>
In win32 this is done with the spawn system call. In posix, this is done with a fork, an execvp, and a waitpid.<p>
<dl compact><dt><b>Warning:</b></dt><dd>The implementation differences between posix and win32 systems may cause side effects. For instance, if you use atexit() and this spawn method, on posix systems the function set up with atexit() will be called when the parent process of the fork exits, which will not happen on Win32 systems.</dd></dl>
<dl compact><dt><b>Returns:</b></dt><dd>error code from process. </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>exec</em>&nbsp;</td><td>name of executable. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>list of command arguments. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>wait</em>&nbsp;</td><td>for process to exit before return. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="3cc2b549525e914931a2829faccc4f44"></a><!-- doxytag: member="ost::Process::unlock" ref="3cc2b549525e914931a2829faccc4f44" args="(void)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void ost::Process::unlock           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Unlock process pages. 
<p>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="process_8h-source.html">process.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 19 10:50:56 2006 for GNU CommonC++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
</body>
</html>