Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > b293cf61b174f6cb974e48c9096dc9b3 > files > 267

lib64commoncpp-devel-1.8.1-7.mga4.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>GNU CommonC++: ost::Process Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">GNU CommonC++
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceost.html">ost</a></li><li class="navelem"><a class="el" href="classost_1_1_process.html">Process</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classost_1_1_process-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ost::Process Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A class for containing portable process related functions that help create portable code.  
 <a href="classost_1_1_process.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="process_8h_source.html">process.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a0d09148ffbdd15032056c1ae2510a741"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="config_8h.html#adbe5dcee9c146b338794974137c55e70">RETSIGTYPE</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a> )(int)</td></tr>
<tr class="separator:a0d09148ffbdd15032056c1ae2510a741"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3f8660a112bf25128a743fb599681cf2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a3f8660a112bf25128a743fb599681cf2">lock</a> (bool future=true)</td></tr>
<tr class="memdesc:a3f8660a112bf25128a743fb599681cf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock a process in memory.  <a href="#a3f8660a112bf25128a743fb599681cf2">More...</a><br/></td></tr>
<tr class="separator:a3f8660a112bf25128a743fb599681cf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cc2b549525e914931a2829faccc4f44"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a3cc2b549525e914931a2829faccc4f44">unlock</a> (void)</td></tr>
<tr class="memdesc:a3cc2b549525e914931a2829faccc4f44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock process pages.  <a href="#a3cc2b549525e914931a2829faccc4f44">More...</a><br/></td></tr>
<tr class="separator:a3cc2b549525e914931a2829faccc4f44"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a43102f60a1dd16da2d812e9c6d77d2b9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a43102f60a1dd16da2d812e9c6d77d2b9">detach</a> (void)</td></tr>
<tr class="memdesc:a43102f60a1dd16da2d812e9c6d77d2b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach current process into a daemon, posix only.  <a href="#a43102f60a1dd16da2d812e9c6d77d2b9">More...</a><br/></td></tr>
<tr class="separator:a43102f60a1dd16da2d812e9c6d77d2b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65113d14afb60393a852c859e0ddf037"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a65113d14afb60393a852c859e0ddf037">attach</a> (const char *devname)</td></tr>
<tr class="memdesc:a65113d14afb60393a852c859e0ddf037"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach the current process to another device or i/o session.  <a href="#a65113d14afb60393a852c859e0ddf037">More...</a><br/></td></tr>
<tr class="separator:a65113d14afb60393a852c859e0ddf037"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad864f14f892fd2ff09483748e7d6a328"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#ad864f14f892fd2ff09483748e7d6a328">setPosixSignal</a> (int signo, <a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a> handler)</td></tr>
<tr class="memdesc:ad864f14f892fd2ff09483748e7d6a328"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a posix compliant signal handler.  <a href="#ad864f14f892fd2ff09483748e7d6a328">More...</a><br/></td></tr>
<tr class="separator:ad864f14f892fd2ff09483748e7d6a328"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf3c850256b0e817298ddeb95f4b4630"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#adf3c850256b0e817298ddeb95f4b4630">setInterruptSignal</a> (int signo, <a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a> handler)</td></tr>
<tr class="memdesc:adf3c850256b0e817298ddeb95f4b4630"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set system call interuptable signal handler.  <a href="#adf3c850256b0e817298ddeb95f4b4630">More...</a><br/></td></tr>
<tr class="separator:adf3c850256b0e817298ddeb95f4b4630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af689ef760fdefb3dfb998950ad1c62a9"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#af689ef760fdefb3dfb998950ad1c62a9">spawn</a> (const char *exec, const char **argv, bool <a class="el" href="namespaceost.html#a24c7774639b3768bdd45b65a296f6369">wait</a>=true)</td></tr>
<tr class="memdesc:af689ef760fdefb3dfb998950ad1c62a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Spawn a process and wait for it's exit code.  <a href="#af689ef760fdefb3dfb998950ad1c62a9">More...</a><br/></td></tr>
<tr class="separator:af689ef760fdefb3dfb998950ad1c62a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc251d46caa853b285ba1d4e19d500ac"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#acc251d46caa853b285ba1d4e19d500ac">join</a> (int pid)</td></tr>
<tr class="memdesc:acc251d46caa853b285ba1d4e19d500ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the exit status of another process, waiting for it to exit.  <a href="#acc251d46caa853b285ba1d4e19d500ac">More...</a><br/></td></tr>
<tr class="separator:acc251d46caa853b285ba1d4e19d500ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a94b9da9e6f879663520f774b140249"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a6a94b9da9e6f879663520f774b140249">cancel</a> (int pid, int sig=0)</td></tr>
<tr class="memdesc:a6a94b9da9e6f879663520f774b140249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel a running child process.  <a href="#a6a94b9da9e6f879663520f774b140249">More...</a><br/></td></tr>
<tr class="separator:a6a94b9da9e6f879663520f774b140249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a26249ddd3dd99104d71d37bf02064"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a24a26249ddd3dd99104d71d37bf02064">getEnv</a> (const char *name)</td></tr>
<tr class="memdesc:a24a26249ddd3dd99104d71d37bf02064"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get system environment.  <a href="#a24a26249ddd3dd99104d71d37bf02064">More...</a><br/></td></tr>
<tr class="separator:a24a26249ddd3dd99104d71d37bf02064"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94a4b4f321b076d59b0fe8902c6ba794"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a94a4b4f321b076d59b0fe8902c6ba794">setEnv</a> (const char *name, const char *value, bool overwrite)</td></tr>
<tr class="memdesc:a94a4b4f321b076d59b0fe8902c6ba794"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set system environment in a standard manner.  <a href="#a94a4b4f321b076d59b0fe8902c6ba794">More...</a><br/></td></tr>
<tr class="separator:a94a4b4f321b076d59b0fe8902c6ba794"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d7c073f3c473f7eead6a6613ff98c00"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a9d7c073f3c473f7eead6a6613ff98c00">getConfigDir</a> (void)</td></tr>
<tr class="memdesc:a9d7c073f3c473f7eead6a6613ff98c00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get etc prefix path.  <a href="#a9d7c073f3c473f7eead6a6613ff98c00">More...</a><br/></td></tr>
<tr class="separator:a9d7c073f3c473f7eead6a6613ff98c00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d99258c5b247accaaf8fa5344288428"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a3d99258c5b247accaaf8fa5344288428">getHomeDir</a> (void)</td></tr>
<tr class="memdesc:a3d99258c5b247accaaf8fa5344288428"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get home directory.  <a href="#a3d99258c5b247accaaf8fa5344288428">More...</a><br/></td></tr>
<tr class="separator:a3d99258c5b247accaaf8fa5344288428"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d1fd732ed82e74b8f749ad2e171361a"><td class="memItemLeft" align="right" valign="top">static const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a1d1fd732ed82e74b8f749ad2e171361a">getUser</a> (void)</td></tr>
<tr class="memdesc:a1d1fd732ed82e74b8f749ad2e171361a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get user name.  <a href="#a1d1fd732ed82e74b8f749ad2e171361a">More...</a><br/></td></tr>
<tr class="separator:a1d1fd732ed82e74b8f749ad2e171361a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2682d8f8aec63d61201b247b4d437aa3"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a2682d8f8aec63d61201b247b4d437aa3">setUser</a> (const char *id, bool grp=true)</td></tr>
<tr class="memdesc:a2682d8f8aec63d61201b247b4d437aa3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set user id by name.  <a href="#a2682d8f8aec63d61201b247b4d437aa3">More...</a><br/></td></tr>
<tr class="separator:a2682d8f8aec63d61201b247b4d437aa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf659310fab24472fb1b8f9797383b8e"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#abf659310fab24472fb1b8f9797383b8e">setGroup</a> (const char *id)</td></tr>
<tr class="memdesc:abf659310fab24472fb1b8f9797383b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the effective group id by name.  <a href="#abf659310fab24472fb1b8f9797383b8e">More...</a><br/></td></tr>
<tr class="separator:abf659310fab24472fb1b8f9797383b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00d16fe1c73744546658a1a0f13906df"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a00d16fe1c73744546658a1a0f13906df">getPageSize</a> (void)</td></tr>
<tr class="memdesc:a00d16fe1c73744546658a1a0f13906df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the effective operating system page size.  <a href="#a00d16fe1c73744546658a1a0f13906df">More...</a><br/></td></tr>
<tr class="separator:a00d16fe1c73744546658a1a0f13906df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b17c10f9f12ba9a965400c87e17a62a"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a6b17c10f9f12ba9a965400c87e17a62a">setPriority</a> (int pri)</td></tr>
<tr class="memdesc:a6b17c10f9f12ba9a965400c87e17a62a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to set process priority and optionally enable realtime.  <a href="#a6b17c10f9f12ba9a965400c87e17a62a">More...</a><br/></td></tr>
<tr class="separator:a6b17c10f9f12ba9a965400c87e17a62a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4751f7ca53e7c15ae0ab5e29952fe65d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a4751f7ca53e7c15ae0ab5e29952fe65d">setScheduler</a> (const char *policy)</td></tr>
<tr class="memdesc:a4751f7ca53e7c15ae0ab5e29952fe65d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to set process scheduling policy.  <a href="#a4751f7ca53e7c15ae0ab5e29952fe65d">More...</a><br/></td></tr>
<tr class="separator:a4751f7ca53e7c15ae0ab5e29952fe65d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26cf80b6ae71b5baa323fe8e0ede944b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a26cf80b6ae71b5baa323fe8e0ede944b">setRealtime</a> (int pri=0)</td></tr>
<tr class="memdesc:a26cf80b6ae71b5baa323fe8e0ede944b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Portable shortcut for setting realtime...  <a href="#a26cf80b6ae71b5baa323fe8e0ede944b">More...</a><br/></td></tr>
<tr class="separator:a26cf80b6ae71b5baa323fe8e0ede944b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdd74b2a47c76ad88df0ba81991ef947"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#afdd74b2a47c76ad88df0ba81991ef947">isScheduler</a> (void)</td></tr>
<tr class="memdesc:afdd74b2a47c76ad88df0ba81991ef947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if scheduler settable.  <a href="#afdd74b2a47c76ad88df0ba81991ef947">More...</a><br/></td></tr>
<tr class="separator:afdd74b2a47c76ad88df0ba81991ef947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f2fe33d0088b1c2db43613581fe04e2"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_process.html#a5f2fe33d0088b1c2db43613581fe04e2">isRealtime</a> (void)</td></tr>
<tr class="memdesc:a5f2fe33d0088b1c2db43613581fe04e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if realtime scheduling.  <a href="#a5f2fe33d0088b1c2db43613581fe04e2">More...</a><br/></td></tr>
<tr class="separator:a5f2fe33d0088b1c2db43613581fe04e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A class for containing portable process related functions that help create portable code. </p>
<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>
<p>Peocess wrapper class. </p>
<dl class="section author"><dt>Author</dt><dd>David Sugar <a href="#" onclick="location.href='mai'+'lto:'+'dyf'+'et'+'@os'+'te'+'l.c'+'om'; return false;">dyfet<span style="display: none;">.nosp@m.</span>@ost<span style="display: none;">.nosp@m.</span>el.co<span style="display: none;">.nosp@m.</span>m</a> </dd></dl>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a0d09148ffbdd15032056c1ae2510a741"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="config_8h.html#adbe5dcee9c146b338794974137c55e70">RETSIGTYPE</a>(* ost::Process::Trap)(int)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a65113d14afb60393a852c859e0ddf037"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ost::Process::attach </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>devname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Attach the current process to another device or i/o session. </p>
<p>It is deamonified and dissasociated with the prior parent process and controlling terminal.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">devname</td><td>path to attach to. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6a94b9da9e6f879663520f774b140249"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool ost::Process::cancel </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sig</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cancel a running child process. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pid</td><td>process id. </td></tr>
    <tr><td class="paramname">sig</td><td>cancel signal to apply. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a43102f60a1dd16da2d812e9c6d77d2b9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ost::Process::detach </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Detach current process into a daemon, posix only. </p>
<p>Perhaps a similar method can be used for creating win32 "services"? </p>

</div>
</div>
<a class="anchor" id="a9d7c073f3c473f7eead6a6613ff98c00"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ost::Process::getConfigDir </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get etc prefix path. </p>
<dl class="section return"><dt>Returns</dt><dd>etc prefix. </dd></dl>

</div>
</div>
<a class="anchor" id="a24a26249ddd3dd99104d71d37bf02064"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ost::Process::getEnv </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get system environment. </p>
<dl class="section return"><dt>Returns</dt><dd>system environ symbol. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>of symbol. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3d99258c5b247accaaf8fa5344288428"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ost::Process::getHomeDir </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get home directory. </p>
<dl class="section return"><dt>Returns</dt><dd>user home directory. </dd></dl>

</div>
</div>
<a class="anchor" id="a00d16fe1c73744546658a1a0f13906df"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static size_t ost::Process::getPageSize </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the effective operating system page size. </p>
<dl class="section return"><dt>Returns</dt><dd>system page size. </dd></dl>

</div>
</div>
<a class="anchor" id="a1d1fd732ed82e74b8f749ad2e171361a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ost::Process::getUser </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get user name. </p>
<dl class="section return"><dt>Returns</dt><dd>user login id. </dd></dl>

</div>
</div>
<a class="anchor" id="a5f2fe33d0088b1c2db43613581fe04e2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool ost::Process::isRealtime </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return true if realtime scheduling. </p>

</div>
</div>
<a class="anchor" id="afdd74b2a47c76ad88df0ba81991ef947"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool ost::Process::isScheduler </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return true if scheduler settable. </p>

</div>
</div>
<a class="anchor" id="acc251d46caa853b285ba1d4e19d500ac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int ost::Process::join </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the exit status of another process, waiting for it to exit. </p>
<dl class="section return"><dt>Returns</dt><dd>exit code from process. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pid</td><td>process id. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3f8660a112bf25128a743fb599681cf2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ost::Process::lock </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>future</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Lock a process in memory. </p>
<p>Ideally you should be deep enough where additional memallocs for functions will not kill you, or use false for future.</p>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">future</td><td>pages as well... </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a94a4b4f321b076d59b0fe8902c6ba794"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ost::Process::setEnv </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>overwrite</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set system environment in a standard manner. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>of environment symbol to set. </td></tr>
    <tr><td class="paramname">value</td><td>of environment symbol. </td></tr>
    <tr><td class="paramname">overwrite</td><td>true if replace existing symbol. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abf659310fab24472fb1b8f9797383b8e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool ost::Process::setGroup </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the effective group id by name. </p>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>

</div>
</div>
<a class="anchor" id="adf3c850256b0e817298ddeb95f4b4630"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a> ost::Process::setInterruptSignal </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>signo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a>&#160;</td>
          <td class="paramname"><em>handler</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set system call interuptable signal handler. </p>
<p>#return previous handler. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">signo</td><td>signal no. </td></tr>
    <tr><td class="paramname">handler</td><td>trap handler. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad864f14f892fd2ff09483748e7d6a328"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a> ost::Process::setPosixSignal </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>signo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classost_1_1_process.html#a0d09148ffbdd15032056c1ae2510a741">Trap</a>&#160;</td>
          <td class="paramname"><em>handler</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set a posix compliant signal handler. </p>
<dl class="section return"><dt>Returns</dt><dd>previous handler. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">signo</td><td>signal no. </td></tr>
    <tr><td class="paramname">handler</td><td>trap handler. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6b17c10f9f12ba9a965400c87e17a62a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ost::Process::setPriority </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pri</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Used to set process priority and optionally enable realtime. </p>

</div>
</div>
<a class="anchor" id="a26cf80b6ae71b5baa323fe8e0ede944b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ost::Process::setRealtime </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pri</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Portable shortcut for setting realtime... </p>

</div>
</div>
<a class="anchor" id="a4751f7ca53e7c15ae0ab5e29952fe65d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void ost::Process::setScheduler </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>policy</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Used to set process scheduling policy. </p>

</div>
</div>
<a class="anchor" id="a2682d8f8aec63d61201b247b4d437aa3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool ost::Process::setUser </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>grp</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set user id by name. </p>
<dl class="section return"><dt>Returns</dt><dd>true if successful. </dd></dl>

</div>
</div>
<a class="anchor" id="af689ef760fdefb3dfb998950ad1c62a9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int ost::Process::spawn </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>exec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>wait</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Spawn a process and wait for it's exit code. </p>
<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 class="section warning"><dt>Warning</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 class="section return"><dt>Returns</dt><dd>error code from process. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">exec</td><td>name of executable. </td></tr>
    <tr><td class="paramname">argv</td><td>list of command arguments. </td></tr>
    <tr><td class="paramname">wait</td><td>for process to exit before return. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3cc2b549525e914931a2829faccc4f44"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Process::unlock </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unlock process pages. </p>

</div>
</div>
<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></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Oct 17 2013 23:24:57 for GNU CommonC++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>