Remove html stuff

Signed-off-by: Tiago Garcia <tiago.rgarcia@ua.pt>
This commit is contained in:
Tiago Garcia 2024-11-25 19:31:38 +00:00
parent 1c7f52c317
commit f049327ea4
Signed by: TiagoRG
GPG Key ID: DFCD48E3F420DB42
58 changed files with 0 additions and 11093 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

View File

@ -1,108 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: dbc.h File 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('dbc_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">dbc.h File Reference<div class="ingroups"><a class="el" href="group___db_c.html">DbC</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Design-by-Contract module.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;assert.h&gt;</code><br />
<code>#include &quot;<a class="el" href="utils_8h_source.html">utils.h</a>&quot;</code><br />
</div>
<p><a href="dbc_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gac101c8ba449f6f8c71b3789a9c489221"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221">check</a>(condition, message)</td></tr>
<tr class="memdesc:gac101c8ba449f6f8c71b3789a9c489221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of an general algorithm assertion. <a href="group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221">More...</a><br /></td></tr>
<tr class="separator:gac101c8ba449f6f8c71b3789a9c489221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5bf1825f80465097d4b753a001cf1af8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8">require</a>(condition, message)</td></tr>
<tr class="memdesc:ga5bf1825f80465097d4b753a001cf1af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of a precondition. <a href="group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8">More...</a><br /></td></tr>
<tr class="separator:ga5bf1825f80465097d4b753a001cf1af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d17c602c4f191371a5fec5af7adc3cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf">ensure</a>(condition, message)</td></tr>
<tr class="memdesc:ga5d17c602c4f191371a5fec5af7adc3cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of a postcondition. <a href="group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf">More...</a><br /></td></tr>
<tr class="separator:ga5d17c602c4f191371a5fec5af7adc3cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9d59b04beef1bf139e10fc44c6f9725"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725">invariant</a>(condition, message)</td></tr>
<tr class="memdesc:gaf9d59b04beef1bf139e10fc44c6f9725"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of an invariant. <a href="group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725">More...</a><br /></td></tr>
<tr class="separator:gaf9d59b04beef1bf139e10fc44c6f9725"><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>Design-by-Contract module. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dbc_8h.html">dbc.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,7 +0,0 @@
var dbc_8h =
[
[ "check", "group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221", null ],
[ "require", "group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8", null ],
[ "ensure", "group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf", null ],
[ "invariant", "group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725", null ]
];

View File

@ -1,203 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: dbc.h Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('dbc_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">dbc.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="dbc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#ifndef DBC_H</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define DBC_H</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;assert.h&gt;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="utils_8h.html">utils.h</a>&quot;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#ifdef NDEBUG</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define NDEBUG_CHECKS</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define NDEBUG_PRECONDITIONS</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#define NDEBUG_POSTCONDITIONS</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#define NDEBUG_INVARIANTS</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#ifdef DEBUG_ONLY_PRECONDITIONS</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#ifdef NDEBUG_PRECONDITIONS</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#undef NDEBUG_PRECONDITIONS</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#ifndef NDEBUG_CHECKS</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#define NDEBUG_CHECKS</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#ifndef NDEBUG_POSTCONDITIONS</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define NDEBUG_POSTCONDITIONS</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#ifndef NDEBUG_INVARIANTS</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#define NDEBUG_INVARIANTS</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// check:</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#ifdef NDEBUG_CHECKS</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#define check(condition, message)</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#if defined __cplusplus &amp;&amp; defined EXCEPTION_POLICY</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#define check(condition, message) \</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor"> throw string_concat(NULL, 0, (char*)&quot;Assertion fail&quot;, message[0] ? (char*)&quot;: &quot; : (char*)&quot;&quot;, message, (char*)&quot;, assertion: \&quot;&quot;, #condition, (char*)&quot;\&quot;, function: \&quot;&quot;, __FUNCTION__, (char*)&quot;\&quot;:&quot;, int2str(__LINE__), (char*)&quot;, file: \&quot;&quot;, __FILE__, (char*)&quot;\&quot;\n&quot;, NULL)</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#else // EXIT_POLICY (default)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221"> 81</a></span>&#160;<span class="preprocessor">#define check(condition, message) \</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> fprintf (stderr, &quot;Assertion fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;, \</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> message[0] ? &quot;: &quot; : &quot;&quot;, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> *((int*)0) = 0; \</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> abort (); \</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> } while (0)</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment">// precondition:</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#ifdef NDEBUG_PRECONDITIONS</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#define require(condition, message)</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#if defined __cplusplus &amp;&amp; defined EXCEPTION_POLICY</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define require(condition, message) \</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> throw string_concat(NULL, 0, (char*)&quot;Precondition fail&quot;, message[0] ? (char*)&quot;: &quot; : (char*)&quot;&quot;, message, (char*)&quot;, assertion: \&quot;&quot;, #condition, (char*)&quot;\&quot;, function: \&quot;&quot;, __FUNCTION__, (char*)&quot;\&quot;:&quot;, int2str(__LINE__), (char*)&quot;, file: \&quot;&quot;, __FILE__, (char*)&quot;\&quot;\n&quot;, NULL)</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#else // EXIT_POLICY (default)</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8"> 110</a></span>&#160;<span class="preprocessor">#define require(condition, message) \</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"> fprintf (stderr, &quot;Precondition fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;, \</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"> message[0] ? &quot;: &quot; : &quot;&quot;, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> *((int*)0) = 0; \</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> abort (); \</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"> } while (0)</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">// postcondition:</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#ifdef NDEBUG_POSTCONDITIONS</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#define ensure(condition, message)</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#if defined __cplusplus &amp;&amp; defined EXCEPTION_POLICY</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#define ensure(condition, message) \</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor"> throw string_concat(NULL, 0, (char*)&quot;Postcondition fail&quot;, message[0] ? (char*)&quot;: &quot; : (char*)&quot;&quot;, message, (char*)&quot;, assertion: \&quot;&quot;, #condition, (char*)&quot;\&quot;, function: \&quot;&quot;, __FUNCTION__, (char*)&quot;\&quot;:&quot;, int2str(__LINE__), (char*)&quot;, file: \&quot;&quot;, __FILE__, (char*)&quot;\&quot;\n&quot;, NULL)</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#else // EXIT_POLICY (default)</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf"> 139</a></span>&#160;<span class="preprocessor">#define ensure(condition, message) \</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"> fprintf (stderr, &quot;Postcondition fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;, \</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> message[0] ? &quot;: &quot; : &quot;&quot;, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"> *((int*)0) = 0; \</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"> abort (); \</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> } while (0)</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">// invariant:</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor">#ifdef NDEBUG_INVARIANTS</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor">#define invariant(condition, message)</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#if defined __cplusplus &amp;&amp; defined EXCEPTION_POLICY</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#define invariant(condition, message) \</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor"> throw string_concat(NULL, 0, (char*)&quot;Invariant fail&quot;, message[0] ? (char*)&quot;: &quot; : (char*)&quot;&quot;, message, (char*)&quot;, assertion: \&quot;&quot;, #condition, (char*)&quot;\&quot;, function: \&quot;&quot;, __FUNCTION__, (char*)&quot;\&quot;:&quot;, int2str(__LINE__), (char*)&quot;, file: \&quot;&quot;, __FILE__, (char*)&quot;\&quot;\n&quot;, NULL)</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#else // EXIT_POLICY (default)</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725"> 168</a></span>&#160;<span class="preprocessor">#define invariant(condition, message) \</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor"> if (!(condition)) \</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor"> fprintf (stderr, &quot;Invariant fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;, \</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> message[0] ? &quot;: &quot; : &quot;&quot;, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> *((int*)0) = 0; \</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> abort (); \</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> } while (0)</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div><div class="ttdoc">Useful common functions and macros.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dbc_8h.html">dbc.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,95 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: src Directory 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">src Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:dbc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dbc_8h.html">dbc.h</a> <a href="dbc_8h_source.html">[code]</a></td></tr>
<tr class="memdesc:dbc_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Design-by-Contract module. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:process_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="process_8h.html">process.h</a> <a href="process_8h_source.html">[code]</a></td></tr>
<tr class="memdesc:process_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__process.html#process">Process</a>, <a class="el" href="group__process.html#sysV">System-V</a>, and <a class="el" href="group__process.html#posix_sem">POSIX libraries</a> wrapper module. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:thread_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread_8h.html">thread.h</a> <a href="thread_8h_source.html">[code]</a></td></tr>
<tr class="memdesc:thread_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">POSIX threads library wrapper module. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:utils_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html">utils.h</a> <a href="utils_8h_source.html">[code]</a></td></tr>
<tr class="memdesc:utils_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Useful common functions and macros. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -1,120 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
/* @license-end */

View File

@ -1,86 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: File List</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('files.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dbc_8h.html" target="_self">dbc.h</a></td><td class="desc">Design-by-Contract module </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="process_8h_source.html"><span class="icondoc"></span></a><a class="el" href="process_8h.html" target="_self">process.h</a></td><td class="desc"><a class="el" href="group__process.html#process">Process</a>, <a class="el" href="group__process.html#sysV">System-V</a>, and <a class="el" href="group__process.html#posix_sem">POSIX libraries</a> wrapper module </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="thread_8h_source.html"><span class="icondoc"></span></a><a class="el" href="thread_8h.html" target="_self">thread.h</a></td><td class="desc">POSIX threads library wrapper module </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="utils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="utils_8h.html" target="_self">utils.h</a></td><td class="desc">Useful common functions and macros </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,7 +0,0 @@
var files_dup =
[
[ "dbc.h", "dbc_8h.html", "dbc_8h" ],
[ "process.h", "process_8h.html", "process_8h" ],
[ "thread.h", "thread_8h.html", "thread_8h" ],
[ "utils.h", "utils_8h.html", "utils_8h" ]
];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 B

View File

@ -1,439 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: Globals</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="contents">
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
<h3><a id="index_c"></a>- c -</h3><ul>
<li>check
: <a class="el" href="group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221">dbc.h</a>
</li>
<li>clear_console()
: <a class="el" href="group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7">utils.h</a>
</li>
<li>concat_2str
: <a class="el" href="group__utils.html#ga22347cbf977a0300726f06257edd79d6">utils.h</a>
</li>
<li>concat_3str
: <a class="el" href="group__utils.html#ga123e40006d54612c48c2660432dfeb23">utils.h</a>
</li>
<li>concat_4str
: <a class="el" href="group__utils.html#ga69037999e65cdb42d39988e0fec48af4">utils.h</a>
</li>
<li>concat_5str
: <a class="el" href="group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876">utils.h</a>
</li>
<li>concat_6str
: <a class="el" href="group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9">utils.h</a>
</li>
<li>concat_7str
: <a class="el" href="group__utils.html#ga01d1ea65eb6780d91705484dd46833bf">utils.h</a>
</li>
<li>cond_broadcast()
: <a class="el" href="group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0">thread.h</a>
</li>
<li>cond_destroy()
: <a class="el" href="group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80">thread.h</a>
</li>
<li>cond_init()
: <a class="el" href="group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad">thread.h</a>
</li>
<li>cond_signal()
: <a class="el" href="group__thread.html#ga9624688b577fb653af7a528848cc53d5">thread.h</a>
</li>
<li>cond_timedwait()
: <a class="el" href="group__thread.html#ga4b41089ba3cd8ad0a539b42bc8b95d6b">thread.h</a>
</li>
<li>cond_wait()
: <a class="el" href="group__thread.html#ga1123643838d5174ccd41f52f4169e896">thread.h</a>
</li>
<li>condattr_destroy()
: <a class="el" href="group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0">thread.h</a>
</li>
<li>condattr_init()
: <a class="el" href="group__thread.html#gab8073c72be896ba9d711d887a5405a74">thread.h</a>
</li>
</ul>
<h3><a id="index_e"></a>- e -</h3><ul>
<li>ensure
: <a class="el" href="group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf">dbc.h</a>
</li>
</ul>
<h3><a id="index_h"></a>- h -</h3><ul>
<li>hide_cursor()
: <a class="el" href="group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1">utils.h</a>
</li>
</ul>
<h3><a id="index_i"></a>- i -</h3><ul>
<li>int2nstr
: <a class="el" href="group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09">utils.h</a>
</li>
<li>int2nstring()
: <a class="el" href="group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e">utils.h</a>
</li>
<li>int2str
: <a class="el" href="group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b">utils.h</a>
</li>
<li>invariant
: <a class="el" href="group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725">dbc.h</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>length_vargs_string_list
: <a class="el" href="group__utils.html#ga7bffda236a079c26302722c7d155f7a5">utils.h</a>
</li>
<li>long2nstr
: <a class="el" href="group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086">utils.h</a>
</li>
<li>long2str
: <a class="el" href="group__utils.html#ga69373a612a7b4d264371f727217f9954">utils.h</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>mem_alloc()
: <a class="el" href="group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052">utils.h</a>
</li>
<li>mem_free()
: <a class="el" href="group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae">utils.h</a>
</li>
<li>move_cursor()
: <a class="el" href="group__utils.html#gad3d324aed0ec686314cb0f68dfde9853">utils.h</a>
</li>
<li>mutex_destroy()
: <a class="el" href="group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01">thread.h</a>
</li>
<li>mutex_init()
: <a class="el" href="group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6">thread.h</a>
</li>
<li>mutex_lock()
: <a class="el" href="group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39">thread.h</a>
</li>
<li>mutex_trylock()
: <a class="el" href="group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928">thread.h</a>
</li>
<li>mutex_unlock()
: <a class="el" href="group__thread.html#ga95235231165ebda870afa10ba5fd6c41">thread.h</a>
</li>
<li>mutexattr_destroy()
: <a class="el" href="group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5">thread.h</a>
</li>
<li>mutexattr_gettype()
: <a class="el" href="group__thread.html#gadf741e1818d53c5b7d71cd68e161b215">thread.h</a>
</li>
<li>mutexattr_init()
: <a class="el" href="group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd">thread.h</a>
</li>
<li>mutexattr_settype()
: <a class="el" href="group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2">thread.h</a>
</li>
</ul>
<h3><a id="index_n"></a>- n -</h3><ul>
<li>not_null
: <a class="el" href="group__utils.html#gadfa0375f8178c737deae23ffa8d152f4">utils.h</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>perc2str
: <a class="el" href="group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5">utils.h</a>
</li>
<li>percentage2string()
: <a class="el" href="group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6">utils.h</a>
</li>
<li>pexecl()
: <a class="el" href="group__process.html#gae5d3e8ac00f0e788f21020699bac758a">process.h</a>
</li>
<li>pfork()
: <a class="el" href="group__process.html#ga67e00aff1839b1ba68c83947593f625b">process.h</a>
</li>
<li>pkill()
: <a class="el" href="group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8">process.h</a>
</li>
<li>pmsgctl()
: <a class="el" href="group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f">process.h</a>
</li>
<li>pmsgget()
: <a class="el" href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">process.h</a>
</li>
<li>pmsgrcv()
: <a class="el" href="group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b">process.h</a>
</li>
<li>pmsgsnd()
: <a class="el" href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">process.h</a>
</li>
<li>ppclose()
: <a class="el" href="group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68">process.h</a>
</li>
<li>ppipe()
: <a class="el" href="group__process.html#ga013466fa89ac97a0db0ccd78168a8456">process.h</a>
</li>
<li>ppopen()
: <a class="el" href="group__process.html#ga2d9df322812707050312aa24d15a4360">process.h</a>
</li>
<li>psem_close()
: <a class="el" href="group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668">process.h</a>
</li>
<li>psem_destroy()
: <a class="el" href="group__process.html#ga82e3d1015521711a2a6374d6c3771491">process.h</a>
</li>
<li>psem_down()
: <a class="el" href="group__process.html#gac2b930e9aceda9ef276b21ae8e839c16">process.h</a>
</li>
<li>psem_down2()
: <a class="el" href="group__process.html#ga47891b55ba91af98c5b45cbcf154bc20">process.h</a>
</li>
<li>psem_init()
: <a class="el" href="group__process.html#gac49ddb266cec5493ebd756cd9382f99d">process.h</a>
</li>
<li>psem_open()
: <a class="el" href="group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba">process.h</a>
</li>
<li>psem_post()
: <a class="el" href="group__process.html#gad63921c4ec6f0845b752eb59a8935b8e">process.h</a>
</li>
<li>psem_timedwait()
: <a class="el" href="group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef">process.h</a>
</li>
<li>psem_trywait()
: <a class="el" href="group__process.html#ga04cb3c84545fe7707c63578e1d59b689">process.h</a>
</li>
<li>psem_unlink()
: <a class="el" href="group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e">process.h</a>
</li>
<li>psem_up()
: <a class="el" href="group__process.html#gaa00610fec639ef123819ceee2ef00da3">process.h</a>
</li>
<li>psem_wait()
: <a class="el" href="group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6">process.h</a>
</li>
<li>psemctl()
: <a class="el" href="group__process.html#gac42e869afba098ec9bdd77444ba790c5">process.h</a>
</li>
<li>psemget()
: <a class="el" href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">process.h</a>
</li>
<li>psemop()
: <a class="el" href="group__process.html#ga0e2534c82b54573590d913c297cc4840">process.h</a>
</li>
<li>pshmat()
: <a class="el" href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">process.h</a>
</li>
<li>pshmctl()
: <a class="el" href="group__process.html#ga3119bdf5486059aee6ec3ed65a01b319">process.h</a>
</li>
<li>pshmdt()
: <a class="el" href="group__process.html#ga1682328cd34b592404ff030779b0428f">process.h</a>
</li>
<li>pshmget()
: <a class="el" href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">process.h</a>
</li>
<li>psigaction()
: <a class="el" href="group__process.html#ga7c7f6de68bd3dea8a702668090a65854">process.h</a>
</li>
<li>pwait()
: <a class="el" href="group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1">process.h</a>
</li>
<li>pwaitpid()
: <a class="el" href="group__process.html#gac926bd7ccd173f742b5d58f51cabcb48">process.h</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>random_boolean()
: <a class="el" href="group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f">utils.h</a>
</li>
<li>random_int()
: <a class="el" href="group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9">utils.h</a>
</li>
<li>random_string()
: <a class="el" href="group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75">utils.h</a>
</li>
<li>require
: <a class="el" href="group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8">dbc.h</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>show_cursor()
: <a class="el" href="group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559">utils.h</a>
</li>
<li>string_clone()
: <a class="el" href="group__utils.html#ga825354891d287cc86d2b4ed1b600175a">utils.h</a>
</li>
<li>string_concat()
: <a class="el" href="group__utils.html#gaa23a827164f7039b9770379cbf008905">utils.h</a>
</li>
<li>string_count_char()
: <a class="el" href="group__utils.html#gad643e0fcac9e59c1a171c460633e8637">utils.h</a>
</li>
<li>string_ends_with()
: <a class="el" href="group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4">utils.h</a>
</li>
<li>string_list_clone()
: <a class="el" href="group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c">utils.h</a>
</li>
<li>string_list_free()
: <a class="el" href="group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c">utils.h</a>
</li>
<li>string_list_length()
: <a class="el" href="group__utils.html#gab8050db5b87bfdee91ee92e67b063478">utils.h</a>
</li>
<li>string_num_columns()
: <a class="el" href="group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c">utils.h</a>
</li>
<li>string_num_lines()
: <a class="el" href="group__utils.html#ga15630ddb64e977c8243892556feedfd8">utils.h</a>
</li>
<li>string_starts_with()
: <a class="el" href="group__utils.html#ga3ec2b60d1636397119c5e0c21987f791">utils.h</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>thread_attr_destroy()
: <a class="el" href="group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c">thread.h</a>
</li>
<li>thread_attr_getdetachstate()
: <a class="el" href="group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4">thread.h</a>
</li>
<li>thread_attr_init()
: <a class="el" href="group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6">thread.h</a>
</li>
<li>thread_attr_setdetachstate()
: <a class="el" href="group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f">thread.h</a>
</li>
<li>thread_cancel()
: <a class="el" href="group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1">thread.h</a>
</li>
<li>thread_create()
: <a class="el" href="group__thread.html#ga3a0f9920a321b54c41c098d3461d3889">thread.h</a>
</li>
<li>thread_detach()
: <a class="el" href="group__thread.html#ga86aa7989874009c886bea9d41700e25c">thread.h</a>
</li>
<li>thread_equal()
: <a class="el" href="group__thread.html#gadca8bdcec91b8985370d904591d342b8">thread.h</a>
</li>
<li>thread_exit()
: <a class="el" href="group__thread.html#ga19b16adf05364471bae2840aa564329a">thread.h</a>
</li>
<li>thread_getspecific()
: <a class="el" href="group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16">thread.h</a>
</li>
<li>thread_join()
: <a class="el" href="group__thread.html#ga2b2370a45c1518f777493526b2e4f46d">thread.h</a>
</li>
<li>thread_key_create()
: <a class="el" href="group__thread.html#ga7df1983f57dca40a86a55d215d13d42b">thread.h</a>
</li>
<li>thread_key_delete()
: <a class="el" href="group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e">thread.h</a>
</li>
<li>thread_once()
: <a class="el" href="group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c">thread.h</a>
</li>
<li>thread_sched_yield()
: <a class="el" href="group__thread.html#ga952c63101c667d247f0923b609710c72">thread.h</a>
</li>
<li>thread_self()
: <a class="el" href="group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4">thread.h</a>
</li>
<li>thread_setcancelstate()
: <a class="el" href="group__thread.html#ga98baffe08beec792f3428ae9ddad966e">thread.h</a>
</li>
<li>thread_setcanceltype()
: <a class="el" href="group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c">thread.h</a>
</li>
<li>thread_setspecific()
: <a class="el" href="group__thread.html#ga3008b033f2830e79179a882a2b74c8ba">thread.h</a>
</li>
<li>thread_testcancel()
: <a class="el" href="group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671">thread.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,127 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: Globals</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_defs.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="contents">
&#160;<ul>
<li>check
: <a class="el" href="group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221">dbc.h</a>
</li>
<li>concat_2str
: <a class="el" href="group__utils.html#ga22347cbf977a0300726f06257edd79d6">utils.h</a>
</li>
<li>concat_3str
: <a class="el" href="group__utils.html#ga123e40006d54612c48c2660432dfeb23">utils.h</a>
</li>
<li>concat_4str
: <a class="el" href="group__utils.html#ga69037999e65cdb42d39988e0fec48af4">utils.h</a>
</li>
<li>concat_5str
: <a class="el" href="group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876">utils.h</a>
</li>
<li>concat_6str
: <a class="el" href="group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9">utils.h</a>
</li>
<li>concat_7str
: <a class="el" href="group__utils.html#ga01d1ea65eb6780d91705484dd46833bf">utils.h</a>
</li>
<li>ensure
: <a class="el" href="group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf">dbc.h</a>
</li>
<li>int2nstr
: <a class="el" href="group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09">utils.h</a>
</li>
<li>int2str
: <a class="el" href="group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b">utils.h</a>
</li>
<li>invariant
: <a class="el" href="group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725">dbc.h</a>
</li>
<li>length_vargs_string_list
: <a class="el" href="group__utils.html#ga7bffda236a079c26302722c7d155f7a5">utils.h</a>
</li>
<li>long2nstr
: <a class="el" href="group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086">utils.h</a>
</li>
<li>long2str
: <a class="el" href="group__utils.html#ga69373a612a7b4d264371f727217f9954">utils.h</a>
</li>
<li>not_null
: <a class="el" href="group__utils.html#gadfa0375f8178c737deae23ffa8d152f4">utils.h</a>
</li>
<li>perc2str
: <a class="el" href="group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5">utils.h</a>
</li>
<li>require
: <a class="el" href="group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8">dbc.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,376 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: Globals</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('globals_func.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="contents">
&#160;
<h3><a id="index_c"></a>- c -</h3><ul>
<li>clear_console()
: <a class="el" href="group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7">utils.h</a>
</li>
<li>cond_broadcast()
: <a class="el" href="group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0">thread.h</a>
</li>
<li>cond_destroy()
: <a class="el" href="group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80">thread.h</a>
</li>
<li>cond_init()
: <a class="el" href="group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad">thread.h</a>
</li>
<li>cond_signal()
: <a class="el" href="group__thread.html#ga9624688b577fb653af7a528848cc53d5">thread.h</a>
</li>
<li>cond_timedwait()
: <a class="el" href="group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2">thread.h</a>
</li>
<li>cond_wait()
: <a class="el" href="group__thread.html#ga1123643838d5174ccd41f52f4169e896">thread.h</a>
</li>
<li>condattr_destroy()
: <a class="el" href="group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0">thread.h</a>
</li>
<li>condattr_init()
: <a class="el" href="group__thread.html#gab8073c72be896ba9d711d887a5405a74">thread.h</a>
</li>
</ul>
<h3><a id="index_h"></a>- h -</h3><ul>
<li>hide_cursor()
: <a class="el" href="group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1">utils.h</a>
</li>
</ul>
<h3><a id="index_i"></a>- i -</h3><ul>
<li>int2nstring()
: <a class="el" href="group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e">utils.h</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>mem_alloc()
: <a class="el" href="group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052">utils.h</a>
</li>
<li>mem_free()
: <a class="el" href="group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae">utils.h</a>
</li>
<li>move_cursor()
: <a class="el" href="group__utils.html#gad3d324aed0ec686314cb0f68dfde9853">utils.h</a>
</li>
<li>mutex_destroy()
: <a class="el" href="group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01">thread.h</a>
</li>
<li>mutex_init()
: <a class="el" href="group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6">thread.h</a>
</li>
<li>mutex_lock()
: <a class="el" href="group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39">thread.h</a>
</li>
<li>mutex_trylock()
: <a class="el" href="group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928">thread.h</a>
</li>
<li>mutex_unlock()
: <a class="el" href="group__thread.html#ga95235231165ebda870afa10ba5fd6c41">thread.h</a>
</li>
<li>mutexattr_destroy()
: <a class="el" href="group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5">thread.h</a>
</li>
<li>mutexattr_gettype()
: <a class="el" href="group__thread.html#gadf741e1818d53c5b7d71cd68e161b215">thread.h</a>
</li>
<li>mutexattr_init()
: <a class="el" href="group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd">thread.h</a>
</li>
<li>mutexattr_settype()
: <a class="el" href="group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2">thread.h</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>percentage2string()
: <a class="el" href="group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6">utils.h</a>
</li>
<li>pexecl()
: <a class="el" href="group__process.html#gae5d3e8ac00f0e788f21020699bac758a">process.h</a>
</li>
<li>pfork()
: <a class="el" href="group__process.html#ga67e00aff1839b1ba68c83947593f625b">process.h</a>
</li>
<li>pkill()
: <a class="el" href="group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8">process.h</a>
</li>
<li>pmsgctl()
: <a class="el" href="group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f">process.h</a>
</li>
<li>pmsgget()
: <a class="el" href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">process.h</a>
</li>
<li>pmsgrcv()
: <a class="el" href="group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b">process.h</a>
</li>
<li>pmsgsnd()
: <a class="el" href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">process.h</a>
</li>
<li>ppclose()
: <a class="el" href="group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68">process.h</a>
</li>
<li>ppipe()
: <a class="el" href="group__process.html#ga013466fa89ac97a0db0ccd78168a8456">process.h</a>
</li>
<li>ppopen()
: <a class="el" href="group__process.html#ga2d9df322812707050312aa24d15a4360">process.h</a>
</li>
<li>psem_close()
: <a class="el" href="group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668">process.h</a>
</li>
<li>psem_destroy()
: <a class="el" href="group__process.html#ga82e3d1015521711a2a6374d6c3771491">process.h</a>
</li>
<li>psem_down()
: <a class="el" href="group__process.html#gac2b930e9aceda9ef276b21ae8e839c16">process.h</a>
</li>
<li>psem_down2()
: <a class="el" href="group__process.html#ga47891b55ba91af98c5b45cbcf154bc20">process.h</a>
</li>
<li>psem_init()
: <a class="el" href="group__process.html#gac49ddb266cec5493ebd756cd9382f99d">process.h</a>
</li>
<li>psem_open()
: <a class="el" href="group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba">process.h</a>
</li>
<li>psem_post()
: <a class="el" href="group__process.html#gad63921c4ec6f0845b752eb59a8935b8e">process.h</a>
</li>
<li>psem_timedwait()
: <a class="el" href="group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef">process.h</a>
</li>
<li>psem_trywait()
: <a class="el" href="group__process.html#ga04cb3c84545fe7707c63578e1d59b689">process.h</a>
</li>
<li>psem_unlink()
: <a class="el" href="group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e">process.h</a>
</li>
<li>psem_up()
: <a class="el" href="group__process.html#gaa00610fec639ef123819ceee2ef00da3">process.h</a>
</li>
<li>psem_wait()
: <a class="el" href="group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6">process.h</a>
</li>
<li>psemctl()
: <a class="el" href="group__process.html#gac42e869afba098ec9bdd77444ba790c5">process.h</a>
</li>
<li>psemget()
: <a class="el" href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">process.h</a>
</li>
<li>psemop()
: <a class="el" href="group__process.html#ga0e2534c82b54573590d913c297cc4840">process.h</a>
</li>
<li>pshmat()
: <a class="el" href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">process.h</a>
</li>
<li>pshmctl()
: <a class="el" href="group__process.html#ga3119bdf5486059aee6ec3ed65a01b319">process.h</a>
</li>
<li>pshmdt()
: <a class="el" href="group__process.html#ga1682328cd34b592404ff030779b0428f">process.h</a>
</li>
<li>pshmget()
: <a class="el" href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">process.h</a>
</li>
<li>psigaction()
: <a class="el" href="group__process.html#ga7c7f6de68bd3dea8a702668090a65854">process.h</a>
</li>
<li>pwait()
: <a class="el" href="group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1">process.h</a>
</li>
<li>pwaitpid()
: <a class="el" href="group__process.html#gac926bd7ccd173f742b5d58f51cabcb48">process.h</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>random_boolean()
: <a class="el" href="group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f">utils.h</a>
</li>
<li>random_int()
: <a class="el" href="group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9">utils.h</a>
</li>
<li>random_string()
: <a class="el" href="group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75">utils.h</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>show_cursor()
: <a class="el" href="group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559">utils.h</a>
</li>
<li>string_clone()
: <a class="el" href="group__utils.html#ga825354891d287cc86d2b4ed1b600175a">utils.h</a>
</li>
<li>string_concat()
: <a class="el" href="group__utils.html#gaa23a827164f7039b9770379cbf008905">utils.h</a>
</li>
<li>string_count_char()
: <a class="el" href="group__utils.html#gad643e0fcac9e59c1a171c460633e8637">utils.h</a>
</li>
<li>string_ends_with()
: <a class="el" href="group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4">utils.h</a>
</li>
<li>string_list_clone()
: <a class="el" href="group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c">utils.h</a>
</li>
<li>string_list_free()
: <a class="el" href="group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c">utils.h</a>
</li>
<li>string_list_length()
: <a class="el" href="group__utils.html#gab8050db5b87bfdee91ee92e67b063478">utils.h</a>
</li>
<li>string_num_columns()
: <a class="el" href="group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c">utils.h</a>
</li>
<li>string_num_lines()
: <a class="el" href="group__utils.html#ga15630ddb64e977c8243892556feedfd8">utils.h</a>
</li>
<li>string_starts_with()
: <a class="el" href="group__utils.html#ga3ec2b60d1636397119c5e0c21987f791">utils.h</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>thread_attr_destroy()
: <a class="el" href="group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c">thread.h</a>
</li>
<li>thread_attr_getdetachstate()
: <a class="el" href="group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4">thread.h</a>
</li>
<li>thread_attr_init()
: <a class="el" href="group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6">thread.h</a>
</li>
<li>thread_attr_setdetachstate()
: <a class="el" href="group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f">thread.h</a>
</li>
<li>thread_cancel()
: <a class="el" href="group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1">thread.h</a>
</li>
<li>thread_create()
: <a class="el" href="group__thread.html#ga3a0f9920a321b54c41c098d3461d3889">thread.h</a>
</li>
<li>thread_detach()
: <a class="el" href="group__thread.html#ga86aa7989874009c886bea9d41700e25c">thread.h</a>
</li>
<li>thread_equal()
: <a class="el" href="group__thread.html#gadca8bdcec91b8985370d904591d342b8">thread.h</a>
</li>
<li>thread_exit()
: <a class="el" href="group__thread.html#ga19b16adf05364471bae2840aa564329a">thread.h</a>
</li>
<li>thread_getspecific()
: <a class="el" href="group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16">thread.h</a>
</li>
<li>thread_join()
: <a class="el" href="group__thread.html#ga2b2370a45c1518f777493526b2e4f46d">thread.h</a>
</li>
<li>thread_key_create()
: <a class="el" href="group__thread.html#ga7df1983f57dca40a86a55d215d13d42b">thread.h</a>
</li>
<li>thread_key_delete()
: <a class="el" href="group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e">thread.h</a>
</li>
<li>thread_once()
: <a class="el" href="group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c">thread.h</a>
</li>
<li>thread_sched_yield()
: <a class="el" href="group__thread.html#ga952c63101c667d247f0923b609710c72">thread.h</a>
</li>
<li>thread_self()
: <a class="el" href="group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4">thread.h</a>
</li>
<li>thread_setcancelstate()
: <a class="el" href="group__thread.html#ga98baffe08beec792f3428ae9ddad966e">thread.h</a>
</li>
<li>thread_setcanceltype()
: <a class="el" href="group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c">thread.h</a>
</li>
<li>thread_setspecific()
: <a class="el" href="group__thread.html#ga3008b033f2830e79179a882a2b74c8ba">thread.h</a>
</li>
<li>thread_testcancel()
: <a class="el" href="group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671">thread.h</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,305 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: DbC</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group___db_c.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#files">Files</a> &#124;
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">DbC</div> </div>
</div><!--header-->
<div class="contents">
<p>Design-by-Contract module.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:dbc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dbc_8h.html">dbc.h</a></td></tr>
<tr class="memdesc:dbc_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Design-by-Contract module. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gac101c8ba449f6f8c71b3789a9c489221"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221">check</a>(condition, message)</td></tr>
<tr class="memdesc:gac101c8ba449f6f8c71b3789a9c489221"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of an general algorithm assertion. <a href="group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221">More...</a><br /></td></tr>
<tr class="separator:gac101c8ba449f6f8c71b3789a9c489221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5bf1825f80465097d4b753a001cf1af8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8">require</a>(condition, message)</td></tr>
<tr class="memdesc:ga5bf1825f80465097d4b753a001cf1af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of a precondition. <a href="group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8">More...</a><br /></td></tr>
<tr class="separator:ga5bf1825f80465097d4b753a001cf1af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d17c602c4f191371a5fec5af7adc3cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf">ensure</a>(condition, message)</td></tr>
<tr class="memdesc:ga5d17c602c4f191371a5fec5af7adc3cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of a postcondition. <a href="group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf">More...</a><br /></td></tr>
<tr class="separator:ga5d17c602c4f191371a5fec5af7adc3cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9d59b04beef1bf139e10fc44c6f9725"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725">invariant</a>(condition, message)</td></tr>
<tr class="memdesc:gaf9d59b04beef1bf139e10fc44c6f9725"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the verification of an invariant. <a href="group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725">More...</a><br /></td></tr>
<tr class="separator:gaf9d59b04beef1bf139e10fc44c6f9725"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Design-by-Contract module. </p>
<p>This module gives a better support for DbC in C++.</p>
<p>When compared with <code>assert.h</code> this module offers the following functionalities:</p><ul>
<li>separates different assertion types (preconditions, postconditions, invariants, and others);</li>
<li>augments assert with error message strings;</li>
<li>implements two error handling policies:<ol type="1">
<li>EXIT_POLICY (default): describes the failed assertion in <code>stderr</code> (with the identification and the precise location of the assertion), generates a segmentation fault (enabling a stack trace within a debugger like <code>gdb</code>), and exits program execution;</li>
<li>EXCEPTION_POLICY: throws a <code>char*</code> exception with the description of the failed assertion.</li>
</ol>
</li>
</ul>
<p>Debug settings:</p><ul>
<li>As happens with <code>assert.h</code>, this module accepts <b><code>NDEBUG</code></b> macro definition to disable all assertion run-time verification.</li>
<li>Also, each assertion type verification can be disabled with macros: <b><code>NDEBUG_CHECKS</code></b>, <b><code>NDEBUG_PRECONDITIONS</code></b>, <b><code>NDEBUG_POSTCONDITIONS</code></b>, and <b><code>NDEBUG_INVARIANTS</code></b>.</li>
<li>A special (high priority) macro named <b><code>DEBUG_ONLY_PRECONDITIONS</code></b> ensures that only precondition debugging remains active (regardless of other debug definitions).</li>
</ul>
<dl class="section author"><dt>Author</dt><dd>Miguel Oliveira e Silva, 2018 </dd></dl>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gac101c8ba449f6f8c71b3789a9c489221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac101c8ba449f6f8c71b3789a9c489221">&#9670;&nbsp;</a></span>check</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define check</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">condition, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">message&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">if</span> (!(condition)) \</div>
<div class="line"> do { \</div>
<div class="line"> fprintf (stderr, <span class="stringliteral">&quot;Assertion fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;</span>, \</div>
<div class="line"> message[0] ? <span class="stringliteral">&quot;: &quot;</span> : <span class="stringliteral">&quot;&quot;</span>, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</div>
<div class="line"> *((<span class="keywordtype">int</span>*)0) = 0; \</div>
<div class="line"> abort (); \</div>
<div class="line"> } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Checks the verification of an general algorithm assertion. </p>
<p>This assertion verification can be disabled at compile time by defining the macro <b><code>NDEBUG_CHECKS</code></b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">condition</td><td>expression to assert its truthness </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>text to be presented with error information when the assertion fails </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga5bf1825f80465097d4b753a001cf1af8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5bf1825f80465097d4b753a001cf1af8">&#9670;&nbsp;</a></span>require</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define require</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">condition, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">message&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">if</span> (!(condition)) \</div>
<div class="line"> do { \</div>
<div class="line"> fprintf (stderr, <span class="stringliteral">&quot;Precondition fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;</span>, \</div>
<div class="line"> message[0] ? <span class="stringliteral">&quot;: &quot;</span> : <span class="stringliteral">&quot;&quot;</span>, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</div>
<div class="line"> *((<span class="keywordtype">int</span>*)0) = 0; \</div>
<div class="line"> abort (); \</div>
<div class="line"> } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Checks the verification of a precondition. </p>
<p>This assertion verification can be disabled at compile time by defining the macro <b><code>NDEBUG_PRECONDITIONS</code></b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">condition</td><td>expression to assert its truthness </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>text to be presented with error information when the assertion fails </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga5d17c602c4f191371a5fec5af7adc3cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5d17c602c4f191371a5fec5af7adc3cf">&#9670;&nbsp;</a></span>ensure</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ensure</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">condition, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">message&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">if</span> (!(condition)) \</div>
<div class="line"> do { \</div>
<div class="line"> fprintf (stderr, <span class="stringliteral">&quot;Postcondition fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;</span>, \</div>
<div class="line"> message[0] ? <span class="stringliteral">&quot;: &quot;</span> : <span class="stringliteral">&quot;&quot;</span>, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</div>
<div class="line"> *((<span class="keywordtype">int</span>*)0) = 0; \</div>
<div class="line"> abort (); \</div>
<div class="line"> } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Checks the verification of a postcondition. </p>
<p>This assertion verification can be disabled at compile time by defining the macro <b><code>NDEBUG_POSTCONDITIONS</code></b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">condition</td><td>expression to assert its truthness </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>text to be presented with error information when the assertion fails </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaf9d59b04beef1bf139e10fc44c6f9725"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9d59b04beef1bf139e10fc44c6f9725">&#9670;&nbsp;</a></span>invariant</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define invariant</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">condition, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">message&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">if</span> (!(condition)) \</div>
<div class="line"> do { \</div>
<div class="line"> fprintf (stderr, <span class="stringliteral">&quot;Invariant fail%s%s, assertion: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;</span>, \</div>
<div class="line"> message[0] ? <span class="stringliteral">&quot;: &quot;</span> : <span class="stringliteral">&quot;&quot;</span>, message, #condition, __FUNCTION__, __LINE__ , __FILE__); \</div>
<div class="line"> *((<span class="keywordtype">int</span>*)0) = 0; \</div>
<div class="line"> abort (); \</div>
<div class="line"> } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Checks the verification of an invariant. </p>
<p>This assertion verification can be disabled at compile time by defining the macro <b><code>NDEBUG_INVARIANTS</code></b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">condition</td><td>expression to assert its truthness </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>text to be presented with error information when the assertion fails </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,8 +0,0 @@
var group___db_c =
[
[ "dbc.h", "dbc_8h.html", null ],
[ "check", "group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221", null ],
[ "require", "group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8", null ],
[ "ensure", "group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf", null ],
[ "invariant", "group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725", null ]
];

View File

@ -1,36 +0,0 @@
var group__process =
[
[ "process.h", "process_8h.html", null ],
[ "pfork", "group__process.html#ga67e00aff1839b1ba68c83947593f625b", null ],
[ "pwait", "group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1", null ],
[ "pwaitpid", "group__process.html#gac926bd7ccd173f742b5d58f51cabcb48", null ],
[ "pkill", "group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8", null ],
[ "pexecl", "group__process.html#gae5d3e8ac00f0e788f21020699bac758a", null ],
[ "psigaction", "group__process.html#ga7c7f6de68bd3dea8a702668090a65854", null ],
[ "pshmget", "group__process.html#gaff71624be0fc9c76e0c72295721875e6", null ],
[ "pshmctl", "group__process.html#ga3119bdf5486059aee6ec3ed65a01b319", null ],
[ "pshmat", "group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480", null ],
[ "pshmdt", "group__process.html#ga1682328cd34b592404ff030779b0428f", null ],
[ "psemget", "group__process.html#gaada159a0fe725ed843ac358be6e6a9d3", null ],
[ "psemctl", "group__process.html#gac42e869afba098ec9bdd77444ba790c5", null ],
[ "psemop", "group__process.html#ga0e2534c82b54573590d913c297cc4840", null ],
[ "psem_up", "group__process.html#gaa00610fec639ef123819ceee2ef00da3", null ],
[ "psem_down", "group__process.html#gac2b930e9aceda9ef276b21ae8e839c16", null ],
[ "psem_down2", "group__process.html#ga47891b55ba91af98c5b45cbcf154bc20", null ],
[ "pmsgget", "group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7", null ],
[ "pmsgctl", "group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f", null ],
[ "pmsgsnd", "group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a", null ],
[ "pmsgrcv", "group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b", null ],
[ "psem_open", "group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba", null ],
[ "psem_close", "group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668", null ],
[ "psem_unlink", "group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e", null ],
[ "psem_init", "group__process.html#gac49ddb266cec5493ebd756cd9382f99d", null ],
[ "psem_destroy", "group__process.html#ga82e3d1015521711a2a6374d6c3771491", null ],
[ "psem_wait", "group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6", null ],
[ "psem_trywait", "group__process.html#ga04cb3c84545fe7707c63578e1d59b689", null ],
[ "psem_timedwait", "group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef", null ],
[ "psem_post", "group__process.html#gad63921c4ec6f0845b752eb59a8935b8e", null ],
[ "ppipe", "group__process.html#ga013466fa89ac97a0db0ccd78168a8456", null ],
[ "ppopen", "group__process.html#ga2d9df322812707050312aa24d15a4360", null ],
[ "ppclose", "group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68", null ]
];

File diff suppressed because it is too large Load Diff

View File

@ -1,42 +0,0 @@
var group__thread =
[
[ "thread.h", "thread_8h.html", null ],
[ "thread_equal", "group__thread.html#gadca8bdcec91b8985370d904591d342b8", null ],
[ "thread_create", "group__thread.html#ga3a0f9920a321b54c41c098d3461d3889", null ],
[ "thread_self", "group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4", null ],
[ "thread_sched_yield", "group__thread.html#ga952c63101c667d247f0923b609710c72", null ],
[ "thread_exit", "group__thread.html#ga19b16adf05364471bae2840aa564329a", null ],
[ "thread_detach", "group__thread.html#ga86aa7989874009c886bea9d41700e25c", null ],
[ "thread_join", "group__thread.html#ga2b2370a45c1518f777493526b2e4f46d", null ],
[ "mutex_init", "group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6", null ],
[ "mutex_destroy", "group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01", null ],
[ "mutex_lock", "group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39", null ],
[ "mutex_trylock", "group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928", null ],
[ "mutex_unlock", "group__thread.html#ga95235231165ebda870afa10ba5fd6c41", null ],
[ "cond_init", "group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad", null ],
[ "cond_destroy", "group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80", null ],
[ "cond_wait", "group__thread.html#ga1123643838d5174ccd41f52f4169e896", null ],
[ "cond_timedwait", "group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2", null ],
[ "cond_timedwait", "group__thread.html#ga4b41089ba3cd8ad0a539b42bc8b95d6b", null ],
[ "cond_signal", "group__thread.html#ga9624688b577fb653af7a528848cc53d5", null ],
[ "cond_broadcast", "group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0", null ],
[ "thread_once", "group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c", null ],
[ "thread_key_create", "group__thread.html#ga7df1983f57dca40a86a55d215d13d42b", null ],
[ "thread_key_delete", "group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e", null ],
[ "thread_setspecific", "group__thread.html#ga3008b033f2830e79179a882a2b74c8ba", null ],
[ "thread_getspecific", "group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16", null ],
[ "mutexattr_init", "group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd", null ],
[ "mutexattr_destroy", "group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5", null ],
[ "mutexattr_settype", "group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2", null ],
[ "mutexattr_gettype", "group__thread.html#gadf741e1818d53c5b7d71cd68e161b215", null ],
[ "condattr_init", "group__thread.html#gab8073c72be896ba9d711d887a5405a74", null ],
[ "condattr_destroy", "group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0", null ],
[ "thread_attr_init", "group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6", null ],
[ "thread_attr_destroy", "group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c", null ],
[ "thread_attr_setdetachstate", "group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f", null ],
[ "thread_attr_getdetachstate", "group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4", null ],
[ "thread_cancel", "group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1", null ],
[ "thread_setcancelstate", "group__thread.html#ga98baffe08beec792f3428ae9ddad966e", null ],
[ "thread_setcanceltype", "group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c", null ],
[ "thread_testcancel", "group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671", null ]
];

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +0,0 @@
var group__utils =
[
[ "utils.h", "utils_8h.html", null ],
[ "concat_2str", "group__utils.html#ga22347cbf977a0300726f06257edd79d6", null ],
[ "concat_3str", "group__utils.html#ga123e40006d54612c48c2660432dfeb23", null ],
[ "concat_4str", "group__utils.html#ga69037999e65cdb42d39988e0fec48af4", null ],
[ "concat_5str", "group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876", null ],
[ "concat_6str", "group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9", null ],
[ "concat_7str", "group__utils.html#ga01d1ea65eb6780d91705484dd46833bf", null ],
[ "int2str", "group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b", null ],
[ "int2nstr", "group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09", null ],
[ "long2str", "group__utils.html#ga69373a612a7b4d264371f727217f9954", null ],
[ "long2nstr", "group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086", null ],
[ "perc2str", "group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5", null ],
[ "length_vargs_string_list", "group__utils.html#ga7bffda236a079c26302722c7d155f7a5", null ],
[ "not_null", "group__utils.html#gadfa0375f8178c737deae23ffa8d152f4", null ],
[ "mem_alloc", "group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052", null ],
[ "mem_free", "group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae", null ],
[ "string_clone", "group__utils.html#ga825354891d287cc86d2b4ed1b600175a", null ],
[ "string_num_lines", "group__utils.html#ga15630ddb64e977c8243892556feedfd8", null ],
[ "string_num_columns", "group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c", null ],
[ "string_count_char", "group__utils.html#gad643e0fcac9e59c1a171c460633e8637", null ],
[ "string_starts_with", "group__utils.html#ga3ec2b60d1636397119c5e0c21987f791", null ],
[ "string_ends_with", "group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4", null ],
[ "string_concat", "group__utils.html#gaa23a827164f7039b9770379cbf008905", null ],
[ "random_boolean", "group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f", null ],
[ "random_int", "group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9", null ],
[ "random_string", "group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75", null ],
[ "clear_console", "group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7", null ],
[ "move_cursor", "group__utils.html#gad3d324aed0ec686314cb0f68dfde9853", null ],
[ "hide_cursor", "group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1", null ],
[ "show_cursor", "group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559", null ],
[ "string_list_length", "group__utils.html#gab8050db5b87bfdee91ee92e67b063478", null ],
[ "string_list_clone", "group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c", null ],
[ "string_list_free", "group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c", null ],
[ "int2nstring", "group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e", null ],
[ "percentage2string", "group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6", null ]
];

View File

@ -1,78 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: Main Page</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('index.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">C++ Library, mos@ua Documentation</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,50 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
function makeTree(data,relPath) {
var result='';
if ('children' in data) {
result+='<ul>';
for (var i in data.children) {
result+='<li><a href="'+relPath+data.children[i].url+'">'+
data.children[i].text+'</a>'+
makeTree(data.children[i],relPath)+'</li>';
}
result+='</ul>';
}
return result;
}
$('#main-nav').append(makeTree(menudata,relPath));
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
if (searchEnabled) {
if (serverSide) {
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
} else {
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
}
}
$('#main-menu').smartmenus();
}
/* @license-end */

View File

@ -1,50 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2019 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
var menudata={children:[
{text:"Main Page",url:"index.html"},
{text:"Modules",url:"modules.html"},
{text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"},
{text:"Globals",url:"globals.html",children:[
{text:"All",url:"globals.html",children:[
{text:"c",url:"globals.html#index_c"},
{text:"e",url:"globals.html#index_e"},
{text:"h",url:"globals.html#index_h"},
{text:"i",url:"globals.html#index_i"},
{text:"l",url:"globals.html#index_l"},
{text:"m",url:"globals.html#index_m"},
{text:"n",url:"globals.html#index_n"},
{text:"p",url:"globals.html#index_p"},
{text:"r",url:"globals.html#index_r"},
{text:"s",url:"globals.html#index_s"},
{text:"t",url:"globals.html#index_t"}]},
{text:"Functions",url:"globals_func.html",children:[
{text:"c",url:"globals_func.html#index_c"},
{text:"h",url:"globals_func.html#index_h"},
{text:"i",url:"globals_func.html#index_i"},
{text:"m",url:"globals_func.html#index_m"},
{text:"p",url:"globals_func.html#index_p"},
{text:"r",url:"globals_func.html#index_r"},
{text:"s",url:"globals_func.html#index_s"},
{text:"t",url:"globals_func.html#index_t"}]},
{text:"Macros",url:"globals_defs.html"}]}]}]}

View File

@ -1,86 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: Modules</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('modules.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Modules</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___db_c.html" target="_self">DbC</a></td><td class="desc">Design-by-Contract module </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__process.html" target="_self">process</a></td><td class="desc"><a class="el" href="group__process.html#process">Process</a>, <a class="el" href="group__process.html#sysV">System-V</a>, and <a class="el" href="group__process.html#posix_sem">POSIX libraries</a> wrapper module </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__thread.html" target="_self">thread</a></td><td class="desc">POSIX threads library wrapper module </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__utils.html" target="_self">utils</a></td><td class="desc">Useful common functions and macros </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,7 +0,0 @@
var modules =
[
[ "DbC", "group___db_c.html", "group___db_c" ],
[ "process", "group__process.html", "group__process" ],
[ "thread", "group__thread.html", "group__thread" ],
[ "utils", "group__utils.html", "group__utils" ]
];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

View File

@ -1,146 +0,0 @@
#nav-tree .children_ul {
margin:0;
padding:4px;
}
#nav-tree ul {
list-style:none outside none;
margin:0px;
padding:0px;
}
#nav-tree li {
white-space:nowrap;
margin:0px;
padding:0px;
}
#nav-tree .plus {
margin:0px;
}
#nav-tree .selected {
background-image: url('tab_a.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
#nav-tree img {
margin:0px;
padding:0px;
border:0px;
vertical-align: middle;
}
#nav-tree a {
text-decoration:none;
padding:0px;
margin:0px;
outline:none;
}
#nav-tree .label {
margin:0px;
padding:0px;
font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}
#nav-tree .label a {
padding:2px;
}
#nav-tree .selected a {
text-decoration:none;
color:#fff;
}
#nav-tree .children_ul {
margin:0px;
padding:0px;
}
#nav-tree .item {
margin:0px;
padding:0px;
}
#nav-tree {
padding: 0px 0px;
background-color: #FAFAFF;
font-size:14px;
overflow:auto;
}
#doc-content {
overflow:auto;
display:block;
padding:0px;
margin:0px;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#side-nav {
padding:0 6px 0 0;
margin: 0px;
display:block;
position: absolute;
left: 0px;
width: 250px;
}
.ui-resizable .ui-resizable-handle {
display:block;
}
.ui-resizable-e {
background-image:url("splitbar.png");
background-size:100%;
background-repeat:repeat-y;
background-attachment: scroll;
cursor:ew-resize;
height:100%;
right:0;
top:0;
width:6px;
}
.ui-resizable-handle {
display:none;
font-size:0.1px;
position:absolute;
z-index:1;
}
#nav-tree-contents {
margin: 6px 0px 0px 0px;
}
#nav-tree {
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#nav-sync {
position:absolute;
top:5px;
right:24px;
z-index:0;
}
#nav-sync img {
opacity:0.3;
}
#nav-sync img:hover {
opacity:0.9;
}
@media print
{
#nav-tree { display: none; }
div.ui-resizable-handle { display: none; position: relative; }
}

View File

@ -1,544 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2019 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
var navTreeSubIndices = new Array();
var arrowDown = '&#9660;';
var arrowRight = '&#9658;';
function getData(varName)
{
var i = varName.lastIndexOf('/');
var n = i>=0 ? varName.substring(i+1) : varName;
return eval(n.replace(/\-/g,'_'));
}
function stripPath(uri)
{
return uri.substring(uri.lastIndexOf('/')+1);
}
function stripPath2(uri)
{
var i = uri.lastIndexOf('/');
var s = uri.substring(i+1);
var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
return m ? uri.substring(i-6) : s;
}
function hashValue()
{
return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
}
function hashUrl()
{
return '#'+hashValue();
}
function pathName()
{
return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
}
function localStorageSupported()
{
try {
return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
}
catch(e) {
return false;
}
}
function storeLink(link)
{
if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
window.localStorage.setItem('navpath',link);
}
}
function deleteLink()
{
if (localStorageSupported()) {
window.localStorage.setItem('navpath','');
}
}
function cachedLink()
{
if (localStorageSupported()) {
return window.localStorage.getItem('navpath');
} else {
return '';
}
}
function getScript(scriptName,func,show)
{
var head = document.getElementsByTagName("head")[0];
var script = document.createElement('script');
script.id = scriptName;
script.type = 'text/javascript';
script.onload = func;
script.src = scriptName+'.js';
head.appendChild(script);
}
function createIndent(o,domNode,node,level)
{
var level=-1;
var n = node;
while (n.parentNode) { level++; n=n.parentNode; }
if (node.childrenData) {
var imgNode = document.createElement("span");
imgNode.className = 'arrow';
imgNode.style.paddingLeft=(16*level).toString()+'px';
imgNode.innerHTML=arrowRight;
node.plus_img = imgNode;
node.expandToggle = document.createElement("a");
node.expandToggle.href = "javascript:void(0)";
node.expandToggle.onclick = function() {
if (node.expanded) {
$(node.getChildrenUL()).slideUp("fast");
node.plus_img.innerHTML=arrowRight;
node.expanded = false;
} else {
expandNode(o, node, false, false);
}
}
node.expandToggle.appendChild(imgNode);
domNode.appendChild(node.expandToggle);
} else {
var span = document.createElement("span");
span.className = 'arrow';
span.style.width = 16*(level+1)+'px';
span.innerHTML = '&#160;';
domNode.appendChild(span);
}
}
var animationInProgress = false;
function gotoAnchor(anchor,aname,updateLocation)
{
var pos, docContent = $('#doc-content');
var ancParent = $(anchor.parent());
if (ancParent.hasClass('memItemLeft') ||
ancParent.hasClass('memtitle') ||
ancParent.hasClass('fieldname') ||
ancParent.hasClass('fieldtype') ||
ancParent.is(':header'))
{
pos = ancParent.position().top;
} else if (anchor.position()) {
pos = anchor.position().top;
}
if (pos) {
var dist = Math.abs(Math.min(
pos-docContent.offset().top,
docContent[0].scrollHeight-
docContent.height()-docContent.scrollTop()));
animationInProgress=true;
docContent.animate({
scrollTop: pos + docContent.scrollTop() - docContent.offset().top
},Math.max(50,Math.min(500,dist)),function(){
if (updateLocation) window.location.href=aname;
animationInProgress=false;
});
}
}
function newNode(o, po, text, link, childrenData, lastNode)
{
var node = new Object();
node.children = Array();
node.childrenData = childrenData;
node.depth = po.depth + 1;
node.relpath = po.relpath;
node.isLast = lastNode;
node.li = document.createElement("li");
po.getChildrenUL().appendChild(node.li);
node.parentNode = po;
node.itemDiv = document.createElement("div");
node.itemDiv.className = "item";
node.labelSpan = document.createElement("span");
node.labelSpan.className = "label";
createIndent(o,node.itemDiv,node,0);
node.itemDiv.appendChild(node.labelSpan);
node.li.appendChild(node.itemDiv);
var a = document.createElement("a");
node.labelSpan.appendChild(a);
node.label = document.createTextNode(text);
node.expanded = false;
a.appendChild(node.label);
if (link) {
var url;
if (link.substring(0,1)=='^') {
url = link.substring(1);
link = url;
} else {
url = node.relpath+link;
}
a.className = stripPath(link.replace('#',':'));
if (link.indexOf('#')!=-1) {
var aname = '#'+link.split('#')[1];
var srcPage = stripPath(pathName());
var targetPage = stripPath(link.split('#')[0]);
a.href = srcPage!=targetPage ? url : "javascript:void(0)";
a.onclick = function(){
storeLink(link);
if (!$(a).parent().parent().hasClass('selected'))
{
$('.item').removeClass('selected');
$('.item').removeAttr('id');
$(a).parent().parent().addClass('selected');
$(a).parent().parent().attr('id','selected');
}
var anchor = $(aname);
gotoAnchor(anchor,aname,true);
};
} else {
a.href = url;
a.onclick = function() { storeLink(link); }
}
} else {
if (childrenData != null)
{
a.className = "nolink";
a.href = "javascript:void(0)";
a.onclick = node.expandToggle.onclick;
}
}
node.childrenUL = null;
node.getChildrenUL = function() {
if (!node.childrenUL) {
node.childrenUL = document.createElement("ul");
node.childrenUL.className = "children_ul";
node.childrenUL.style.display = "none";
node.li.appendChild(node.childrenUL);
}
return node.childrenUL;
};
return node;
}
function showRoot()
{
var headerHeight = $("#top").height();
var footerHeight = $("#nav-path").height();
var windowHeight = $(window).height() - headerHeight - footerHeight;
(function (){ // retry until we can scroll to the selected item
try {
var navtree=$('#nav-tree');
navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
} catch (err) {
setTimeout(arguments.callee, 0);
}
})();
}
function expandNode(o, node, imm, showRoot)
{
if (node.childrenData && !node.expanded) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
expandNode(o, node, imm, showRoot);
}, showRoot);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).slideDown("fast");
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
}
}
}
function glowEffect(n,duration)
{
n.addClass('glow').delay(duration).queue(function(next){
$(this).removeClass('glow');next();
});
}
function highlightAnchor()
{
var aname = hashUrl();
var anchor = $(aname);
if (anchor.parent().attr('class')=='memItemLeft'){
var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
glowEffect(rows.children(),300); // member without details
} else if (anchor.parent().attr('class')=='fieldname'){
glowEffect(anchor.parent().parent(),1000); // enum value
} else if (anchor.parent().attr('class')=='fieldtype'){
glowEffect(anchor.parent().parent(),1000); // struct field
} else if (anchor.parent().is(":header")) {
glowEffect(anchor.parent(),1000); // section header
} else {
glowEffect(anchor.next(),1000); // normal member
}
}
function selectAndHighlight(hash,n)
{
var a;
if (hash) {
var link=stripPath(pathName())+':'+hash.substring(1);
a=$('.item a[class$="'+link+'"]');
}
if (a && a.length) {
a.parent().parent().addClass('selected');
a.parent().parent().attr('id','selected');
highlightAnchor();
} else if (n) {
$(n.itemDiv).addClass('selected');
$(n.itemDiv).attr('id','selected');
}
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
$('#nav-sync').css('top','30px');
} else {
$('#nav-sync').css('top','5px');
}
showRoot();
}
function showNode(o, node, index, hash)
{
if (node && node.childrenData) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
showNode(o,node,index,hash);
},true);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).css({'display':'block'});
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
var n = node.children[o.breadcrumbs[index]];
if (index+1<o.breadcrumbs.length) {
showNode(o,n,index+1,hash);
} else {
if (typeof(n.childrenData)==='string') {
var varName = n.childrenData;
getScript(n.relpath+varName,function(){
n.childrenData = getData(varName);
node.expanded=false;
showNode(o,node,index,hash); // retry with child node expanded
},true);
} else {
var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
expandNode(o, n, true, true);
}
selectAndHighlight(hash,n);
}
}
}
} else {
selectAndHighlight(hash);
}
}
function removeToInsertLater(element) {
var parentNode = element.parentNode;
var nextSibling = element.nextSibling;
parentNode.removeChild(element);
return function() {
if (nextSibling) {
parentNode.insertBefore(element, nextSibling);
} else {
parentNode.appendChild(element);
}
};
}
function getNode(o, po)
{
var insertFunction = removeToInsertLater(po.li);
po.childrenVisited = true;
var l = po.childrenData.length-1;
for (var i in po.childrenData) {
var nodeData = po.childrenData[i];
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
i==l);
}
insertFunction();
}
function gotoNode(o,subIndex,root,hash,relpath)
{
var nti = navTreeSubIndices[subIndex][root+hash];
o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
navTo(o,NAVTREE[0][1],"",relpath);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
if (o.breadcrumbs) {
o.breadcrumbs.unshift(0); // add 0 for root node
showNode(o, o.node, 0, hash);
}
}
function navTo(o,root,hash,relpath)
{
var link = cachedLink();
if (link) {
var parts = link.split('#');
root = parts[0];
if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
else hash='';
}
if (hash.match(/^#l\d+$/)) {
var anchor=$('a[name='+hash.substring(1)+']');
glowEffect(anchor.parent(),1000); // line number
hash=''; // strip line number anchors
}
var url=root+hash;
var i=-1;
while (NAVTREEINDEX[i+1]<=url) i++;
if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath)
} else {
getScript(relpath+'navtreeindex'+i,function(){
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath);
}
},true);
}
}
function showSyncOff(n,relpath)
{
n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
}
function showSyncOn(n,relpath)
{
n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
}
function toggleSyncButton(relpath)
{
var navSync = $('#nav-sync');
if (navSync.hasClass('sync')) {
navSync.removeClass('sync');
showSyncOff(navSync,relpath);
storeLink(stripPath2(pathName())+hashUrl());
} else {
navSync.addClass('sync');
showSyncOn(navSync,relpath);
deleteLink();
}
}
var loadTriggered = false;
var readyTriggered = false;
var loadObject,loadToRoot,loadUrl,loadRelPath;
$(window).on('load',function(){
if (readyTriggered) { // ready first
navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
showRoot();
}
loadTriggered=true;
});
function initNavTree(toroot,relpath)
{
var o = new Object();
o.toroot = toroot;
o.node = new Object();
o.node.li = document.getElementById("nav-tree-contents");
o.node.childrenData = NAVTREE;
o.node.children = new Array();
o.node.childrenUL = document.createElement("ul");
o.node.getChildrenUL = function() { return o.node.childrenUL; };
o.node.li.appendChild(o.node.childrenUL);
o.node.depth = 0;
o.node.relpath = relpath;
o.node.expanded = false;
o.node.isLast = true;
o.node.plus_img = document.createElement("span");
o.node.plus_img.className = 'arrow';
o.node.plus_img.innerHTML = arrowRight;
if (localStorageSupported()) {
var navSync = $('#nav-sync');
if (cachedLink()) {
showSyncOff(navSync,relpath);
navSync.removeClass('sync');
} else {
showSyncOn(navSync,relpath);
}
navSync.click(function(){ toggleSyncButton(relpath); });
}
if (loadTriggered) { // load before ready
navTo(o,toroot,hashUrl(),relpath);
showRoot();
} else { // ready before load
loadObject = o;
loadToRoot = toroot;
loadUrl = hashUrl();
loadRelPath = relpath;
readyTriggered=true;
}
$(window).bind('hashchange', function(){
if (window.location.hash && window.location.hash.length>1){
var a;
if ($(location).attr('hash')){
var clslink=stripPath(pathName())+':'+hashValue();
a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
}
if (a==null || !$(a).parent().parent().hasClass('selected')){
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
var link=stripPath2(pathName());
navTo(o,link,hashUrl(),relpath);
} else if (!animationInProgress) {
$('#doc-content').scrollTop(0);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
navTo(o,toroot,hashUrl(),relpath);
}
})
}
/* @license-end */

View File

@ -1,44 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2019 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
var NAVTREE =
[
[ "C++ Library, mos@ua", "index.html", [
[ "Modules", "modules.html", "modules" ],
[ "Files", "files.html", [
[ "File List", "files.html", "files_dup" ],
[ "Globals", "globals.html", [
[ "All", "globals.html", null ],
[ "Functions", "globals_func.html", null ],
[ "Macros", "globals_defs.html", null ]
] ]
] ]
] ]
];
var NAVTREEINDEX =
[
"dbc_8h.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';
var SYNCOFFMSG = 'click to enable panel synchronisation';

View File

@ -1,238 +0,0 @@
var NAVTREEINDEX0 =
{
"dbc_8h.html":[1,0,0],
"dbc_8h_source.html":[1,0,0],
"files.html":[1,0],
"globals.html":[1,1,0],
"globals_defs.html":[1,1,2],
"globals_func.html":[1,1,1],
"group___db_c.html":[0,0],
"group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8":[0,0,2],
"group___db_c.html#ga5bf1825f80465097d4b753a001cf1af8":[1,0,0,1],
"group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf":[0,0,3],
"group___db_c.html#ga5d17c602c4f191371a5fec5af7adc3cf":[1,0,0,2],
"group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221":[0,0,1],
"group___db_c.html#gac101c8ba449f6f8c71b3789a9c489221":[1,0,0,0],
"group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725":[0,0,4],
"group___db_c.html#gaf9d59b04beef1bf139e10fc44c6f9725":[1,0,0,3],
"group__process.html":[0,1],
"group__process.html#ga013466fa89ac97a0db0ccd78168a8456":[0,1,30],
"group__process.html#ga013466fa89ac97a0db0ccd78168a8456":[1,0,1,29],
"group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e":[0,1,23],
"group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e":[1,0,1,22],
"group__process.html#ga04cb3c84545fe7707c63578e1d59b689":[0,1,27],
"group__process.html#ga04cb3c84545fe7707c63578e1d59b689":[1,0,1,26],
"group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480":[1,0,1,8],
"group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480":[0,1,9],
"group__process.html#ga0e2534c82b54573590d913c297cc4840":[1,0,1,12],
"group__process.html#ga0e2534c82b54573590d913c297cc4840":[0,1,13],
"group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f":[1,0,1,17],
"group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f":[0,1,18],
"group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68":[1,0,1,31],
"group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68":[0,1,32],
"group__process.html#ga1682328cd34b592404ff030779b0428f":[1,0,1,9],
"group__process.html#ga1682328cd34b592404ff030779b0428f":[0,1,10],
"group__process.html#ga2d9df322812707050312aa24d15a4360":[1,0,1,30],
"group__process.html#ga2d9df322812707050312aa24d15a4360":[0,1,31],
"group__process.html#ga3119bdf5486059aee6ec3ed65a01b319":[1,0,1,7],
"group__process.html#ga3119bdf5486059aee6ec3ed65a01b319":[0,1,8],
"group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668":[1,0,1,21],
"group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668":[0,1,22],
"group__process.html#ga47891b55ba91af98c5b45cbcf154bc20":[1,0,1,15],
"group__process.html#ga47891b55ba91af98c5b45cbcf154bc20":[0,1,16],
"group__process.html#ga67e00aff1839b1ba68c83947593f625b":[0,1,1],
"group__process.html#ga67e00aff1839b1ba68c83947593f625b":[1,0,1,0],
"group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba":[1,0,1,20],
"group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba":[0,1,21],
"group__process.html#ga7c7f6de68bd3dea8a702668090a65854":[1,0,1,5],
"group__process.html#ga7c7f6de68bd3dea8a702668090a65854":[0,1,6],
"group__process.html#ga82e3d1015521711a2a6374d6c3771491":[0,1,25],
"group__process.html#ga82e3d1015521711a2a6374d6c3771491":[1,0,1,24],
"group__process.html#gaa00610fec639ef123819ceee2ef00da3":[1,0,1,13],
"group__process.html#gaa00610fec639ef123819ceee2ef00da3":[0,1,14],
"group__process.html#gaada159a0fe725ed843ac358be6e6a9d3":[1,0,1,10],
"group__process.html#gaada159a0fe725ed843ac358be6e6a9d3":[0,1,11],
"group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8":[1,0,1,3],
"group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8":[0,1,4],
"group__process.html#gac2b930e9aceda9ef276b21ae8e839c16":[1,0,1,14],
"group__process.html#gac2b930e9aceda9ef276b21ae8e839c16":[0,1,15],
"group__process.html#gac42e869afba098ec9bdd77444ba790c5":[1,0,1,11],
"group__process.html#gac42e869afba098ec9bdd77444ba790c5":[0,1,12],
"group__process.html#gac49ddb266cec5493ebd756cd9382f99d":[0,1,24],
"group__process.html#gac49ddb266cec5493ebd756cd9382f99d":[1,0,1,23],
"group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef":[0,1,28],
"group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef":[1,0,1,27],
"group__process.html#gac926bd7ccd173f742b5d58f51cabcb48":[0,1,3],
"group__process.html#gac926bd7ccd173f742b5d58f51cabcb48":[1,0,1,2],
"group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b":[1,0,1,19],
"group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b":[0,1,20],
"group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1":[0,1,2],
"group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1":[1,0,1,1],
"group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7":[1,0,1,16],
"group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7":[0,1,17],
"group__process.html#gad63921c4ec6f0845b752eb59a8935b8e":[0,1,29],
"group__process.html#gad63921c4ec6f0845b752eb59a8935b8e":[1,0,1,28],
"group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6":[0,1,26],
"group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6":[1,0,1,25],
"group__process.html#gae5d3e8ac00f0e788f21020699bac758a":[1,0,1,4],
"group__process.html#gae5d3e8ac00f0e788f21020699bac758a":[0,1,5],
"group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a":[1,0,1,18],
"group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a":[0,1,19],
"group__process.html#gaff71624be0fc9c76e0c72295721875e6":[1,0,1,6],
"group__process.html#gaff71624be0fc9c76e0c72295721875e6":[0,1,7],
"group__thread.html":[0,2],
"group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5":[0,2,26],
"group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5":[1,0,2,25],
"group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16":[0,2,24],
"group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16":[1,0,2,23],
"group__thread.html#ga1123643838d5174ccd41f52f4169e896":[1,0,2,14],
"group__thread.html#ga1123643838d5174ccd41f52f4169e896":[0,2,15],
"group__thread.html#ga19b16adf05364471bae2840aa564329a":[1,0,2,4],
"group__thread.html#ga19b16adf05364471bae2840aa564329a":[0,2,5],
"group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1":[0,2,35],
"group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1":[1,0,2,34],
"group__thread.html#ga2b2370a45c1518f777493526b2e4f46d":[1,0,2,6],
"group__thread.html#ga2b2370a45c1518f777493526b2e4f46d":[0,2,7],
"group__thread.html#ga3008b033f2830e79179a882a2b74c8ba":[0,2,23],
"group__thread.html#ga3008b033f2830e79179a882a2b74c8ba":[1,0,2,22],
"group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad":[1,0,2,12],
"group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad":[0,2,13],
"group__thread.html#ga3a0f9920a321b54c41c098d3461d3889":[1,0,2,1],
"group__thread.html#ga3a0f9920a321b54c41c098d3461d3889":[0,2,2],
"group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6":[1,0,2,7],
"group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6":[0,2,8],
"group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0":[0,2,30],
"group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0":[1,0,2,29],
"group__thread.html#ga4b41089ba3cd8ad0a539b42bc8b95d6b":[1,0,2,16],
"group__thread.html#ga4b41089ba3cd8ad0a539b42bc8b95d6b":[0,2,17],
"group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01":[0,2,9],
"group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01":[1,0,2,8],
"group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2":[0,2,27],
"group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2":[1,0,2,26],
"group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4":[1,0,2,2],
"group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4":[0,2,3],
"group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0":[1,0,2,18],
"group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0":[0,2,19],
"group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e":[0,2,22],
"group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e":[1,0,2,21],
"group__thread.html#ga7df1983f57dca40a86a55d215d13d42b":[1,0,2,20],
"group__thread.html#ga7df1983f57dca40a86a55d215d13d42b":[0,2,21],
"group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671":[1,0,2,37],
"group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671":[0,2,38],
"group__thread.html#ga86aa7989874009c886bea9d41700e25c":[1,0,2,5],
"group__thread.html#ga86aa7989874009c886bea9d41700e25c":[0,2,6],
"group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39":[1,0,2,9],
"group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39":[0,2,10],
"group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928":[1,0,2,10],
"group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928":[0,2,11],
"group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2":[1,0,2,15],
"group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2":[0,2,16],
"group__thread.html#ga95235231165ebda870afa10ba5fd6c41":[1,0,2,11],
"group__thread.html#ga95235231165ebda870afa10ba5fd6c41":[0,2,12],
"group__thread.html#ga952c63101c667d247f0923b609710c72":[1,0,2,3],
"group__thread.html#ga952c63101c667d247f0923b609710c72":[0,2,4],
"group__thread.html#ga9624688b577fb653af7a528848cc53d5":[1,0,2,17],
"group__thread.html#ga9624688b577fb653af7a528848cc53d5":[0,2,18],
"group__thread.html#ga98baffe08beec792f3428ae9ddad966e":[0,2,36],
"group__thread.html#ga98baffe08beec792f3428ae9ddad966e":[1,0,2,35],
"group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd":[0,2,25],
"group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd":[1,0,2,24],
"group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4":[0,2,34],
"group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4":[1,0,2,33],
"group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6":[1,0,2,30],
"group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6":[0,2,31],
"group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c":[0,2,37],
"group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c":[1,0,2,36],
"group__thread.html#gab8073c72be896ba9d711d887a5405a74":[0,2,29],
"group__thread.html#gab8073c72be896ba9d711d887a5405a74":[1,0,2,28],
"group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f":[0,2,33],
"group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f":[1,0,2,32],
"group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c":[1,0,2,19],
"group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c":[0,2,20],
"group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80":[1,0,2,13],
"group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80":[0,2,14],
"group__thread.html#gadca8bdcec91b8985370d904591d342b8":[1,0,2,0],
"group__thread.html#gadca8bdcec91b8985370d904591d342b8":[0,2,1],
"group__thread.html#gadf741e1818d53c5b7d71cd68e161b215":[1,0,2,27],
"group__thread.html#gadf741e1818d53c5b7d71cd68e161b215":[0,2,28],
"group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c":[0,2,32],
"group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c":[1,0,2,31],
"group__utils.html":[0,3],
"group__utils.html#ga01d1ea65eb6780d91705484dd46833bf":[1,0,3,5],
"group__utils.html#ga01d1ea65eb6780d91705484dd46833bf":[0,3,6],
"group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c":[0,3,18],
"group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c":[1,0,3,17],
"group__utils.html#ga123e40006d54612c48c2660432dfeb23":[0,3,2],
"group__utils.html#ga123e40006d54612c48c2660432dfeb23":[1,0,3,1],
"group__utils.html#ga15630ddb64e977c8243892556feedfd8":[0,3,17],
"group__utils.html#ga15630ddb64e977c8243892556feedfd8":[1,0,3,16],
"group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559":[0,3,29],
"group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559":[1,0,3,28],
"group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4":[0,3,21],
"group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4":[1,0,3,20],
"group__utils.html#ga22347cbf977a0300726f06257edd79d6":[0,3,1],
"group__utils.html#ga22347cbf977a0300726f06257edd79d6":[1,0,3,0],
"group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9":[1,0,3,4],
"group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9":[0,3,5],
"group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b":[1,0,3,6],
"group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b":[0,3,7],
"group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7":[0,3,26],
"group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7":[1,0,3,25],
"group__utils.html#ga3ec2b60d1636397119c5e0c21987f791":[1,0,3,19],
"group__utils.html#ga3ec2b60d1636397119c5e0c21987f791":[0,3,20],
"group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c":[0,3,31],
"group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c":[1,0,3,30],
"group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1":[0,3,28],
"group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1":[1,0,3,27],
"group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086":[0,3,10],
"group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086":[1,0,3,9],
"group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876":[1,0,3,3],
"group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876":[0,3,4],
"group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5":[0,3,11],
"group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5":[1,0,3,10],
"group__utils.html#ga69037999e65cdb42d39988e0fec48af4":[1,0,3,2],
"group__utils.html#ga69037999e65cdb42d39988e0fec48af4":[0,3,3],
"group__utils.html#ga69373a612a7b4d264371f727217f9954":[0,3,9],
"group__utils.html#ga69373a612a7b4d264371f727217f9954":[1,0,3,8],
"group__utils.html#ga7bffda236a079c26302722c7d155f7a5":[1,0,3,11],
"group__utils.html#ga7bffda236a079c26302722c7d155f7a5":[0,3,12],
"group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e":[0,3,33],
"group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e":[1,0,3,32],
"group__utils.html#ga825354891d287cc86d2b4ed1b600175a":[0,3,16],
"group__utils.html#ga825354891d287cc86d2b4ed1b600175a":[1,0,3,15],
"group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09":[1,0,3,7],
"group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09":[0,3,8],
"group__utils.html#gaa23a827164f7039b9770379cbf008905":[0,3,22],
"group__utils.html#gaa23a827164f7039b9770379cbf008905":[1,0,3,21],
"group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75":[1,0,3,24],
"group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75":[0,3,25],
"group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c":[0,3,32],
"group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c":[1,0,3,31],
"group__utils.html#gab8050db5b87bfdee91ee92e67b063478":[0,3,30],
"group__utils.html#gab8050db5b87bfdee91ee92e67b063478":[1,0,3,29],
"group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f":[1,0,3,22],
"group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f":[0,3,23],
"group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae":[1,0,3,14],
"group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae":[0,3,15],
"group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6":[1,0,3,33],
"group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6":[0,3,34],
"group__utils.html#gad3d324aed0ec686314cb0f68dfde9853":[1,0,3,26],
"group__utils.html#gad3d324aed0ec686314cb0f68dfde9853":[0,3,27],
"group__utils.html#gad643e0fcac9e59c1a171c460633e8637":[0,3,19],
"group__utils.html#gad643e0fcac9e59c1a171c460633e8637":[1,0,3,18],
"group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9":[0,3,24],
"group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9":[1,0,3,23],
"group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052":[0,3,14],
"group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052":[1,0,3,13],
"group__utils.html#gadfa0375f8178c737deae23ffa8d152f4":[1,0,3,12],
"group__utils.html#gadfa0375f8178c737deae23ffa8d152f4":[0,3,13],
"index.html":[],
"modules.html":[0],
"pages.html":[],
"process_8h.html":[1,0,1],
"process_8h_source.html":[1,0,1],
"thread_8h.html":[1,0,2],
"thread_8h_source.html":[1,0,2],
"utils_8h.html":[1,0,3],
"utils_8h_source.html":[1,0,3]
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

View File

@ -1,296 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: process.h File 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('process_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">process.h File Reference<div class="ingroups"><a class="el" href="group__process.html">process</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p><a class="el" href="group__process.html#process">Process</a>, <a class="el" href="group__process.html#sysV">System-V</a>, and <a class="el" href="group__process.html#posix_sem">POSIX libraries</a> wrapper module.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
<code>#include &lt;unistd.h&gt;</code><br />
<code>#include &lt;sys/ipc.h&gt;</code><br />
<code>#include &lt;sys/shm.h&gt;</code><br />
<code>#include &lt;sys/sem.h&gt;</code><br />
<code>#include &lt;semaphore.h&gt;</code><br />
<code>#include &lt;signal.h&gt;</code><br />
</div>
<p><a href="process_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Process handling</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="process"></a></p>
</div></td></tr>
<tr class="memitem:ga67e00aff1839b1ba68c83947593f625b"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga67e00aff1839b1ba68c83947593f625b">pfork</a> (void)</td></tr>
<tr class="memdesc:ga67e00aff1839b1ba68c83947593f625b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>fork</code> wrapper function. <a href="group__process.html#ga67e00aff1839b1ba68c83947593f625b">More...</a><br /></td></tr>
<tr class="separator:ga67e00aff1839b1ba68c83947593f625b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad27b81fee9a0f792c4ba29fd95c967e1"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1">pwait</a> (int *status)</td></tr>
<tr class="memdesc:gad27b81fee9a0f792c4ba29fd95c967e1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>wait</code> wrapper function. <a href="group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1">More...</a><br /></td></tr>
<tr class="separator:gad27b81fee9a0f792c4ba29fd95c967e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac926bd7ccd173f742b5d58f51cabcb48"><td class="memItemLeft" align="right" valign="top">pid_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gac926bd7ccd173f742b5d58f51cabcb48">pwaitpid</a> (pid_t pid, int *status, int options)</td></tr>
<tr class="memdesc:gac926bd7ccd173f742b5d58f51cabcb48"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>waitpid</code> wrapper function. <a href="group__process.html#gac926bd7ccd173f742b5d58f51cabcb48">More...</a><br /></td></tr>
<tr class="separator:gac926bd7ccd173f742b5d58f51cabcb48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab546ccee89e3159ea7c23aa3a463a0d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8">pkill</a> (pid_t pid, int sig)</td></tr>
<tr class="memdesc:gab546ccee89e3159ea7c23aa3a463a0d8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>kill</code> wrapper function. <a href="group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8">More...</a><br /></td></tr>
<tr class="separator:gab546ccee89e3159ea7c23aa3a463a0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5d3e8ac00f0e788f21020699bac758a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gae5d3e8ac00f0e788f21020699bac758a">pexecl</a> (const char *pathname, const char *arg,...)</td></tr>
<tr class="memdesc:gae5d3e8ac00f0e788f21020699bac758a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>execl</code> wrapper function. <a href="group__process.html#gae5d3e8ac00f0e788f21020699bac758a">More...</a><br /></td></tr>
<tr class="separator:gae5d3e8ac00f0e788f21020699bac758a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c7f6de68bd3dea8a702668090a65854"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga7c7f6de68bd3dea8a702668090a65854">psigaction</a> (int signum, const struct sigaction *act, struct sigaction *oldact)</td></tr>
<tr class="memdesc:ga7c7f6de68bd3dea8a702668090a65854"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sigaction</code> wrapper function. <a href="group__process.html#ga7c7f6de68bd3dea8a702668090a65854">More...</a><br /></td></tr>
<tr class="separator:ga7c7f6de68bd3dea8a702668090a65854"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">System V - shared memory</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="shm"></a> </p><dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="process_8h.html">process.h</a>&gt;</span> <span class="comment">// #include &lt;sys/shm.h&gt;</span></div>
<div class="line">...</div>
<div class="line">int shmid;</div>
<div class="line"><span class="comment">// creation:</span></div>
<div class="line">shmid = <a class="code" href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">pshmget</a>(key, size, 0600 | IPC_CREAT | IPC_EXCL);</div>
<div class="line"><span class="comment">// or, use existing:</span></div>
<div class="line">shmid = <a class="code" href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">pshmget</a>(key, 0, 0);</div>
<div class="line">...</div>
<div class="line"><span class="comment">// attach shm to pointer address:</span></div>
<div class="line">void* p = <a class="code" href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">pshmat</a>(shmid, NULL, 0);</div>
<div class="line">...</div>
<div class="line"><span class="comment">// detach shm from pointer address:</span></div>
<div class="line">pshmdt(p);</div>
<div class="line">...</div>
<div class="line"><span class="comment">// destroy shm:</span></div>
<div class="line">pshmctl(shmid, IPC_RMID, NULL);</div>
</div><!-- fragment --> </dd></dl>
</div></td></tr>
<tr class="memitem:gaff71624be0fc9c76e0c72295721875e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">pshmget</a> (key_t key, size_t size, int shmflg)</td></tr>
<tr class="memdesc:gaff71624be0fc9c76e0c72295721875e6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>shmget</code> wrapper function. <a href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">More...</a><br /></td></tr>
<tr class="separator:gaff71624be0fc9c76e0c72295721875e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3119bdf5486059aee6ec3ed65a01b319"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga3119bdf5486059aee6ec3ed65a01b319">pshmctl</a> (int shmid, int cmd, struct shmid_ds *buf)</td></tr>
<tr class="memdesc:ga3119bdf5486059aee6ec3ed65a01b319"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>shmctl</code> wrapper function. <a href="group__process.html#ga3119bdf5486059aee6ec3ed65a01b319">More...</a><br /></td></tr>
<tr class="separator:ga3119bdf5486059aee6ec3ed65a01b319"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cdba7faa458e7fb57c31d3cd8788480"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">pshmat</a> (int shmid, const void *shmaddr, int shmflg)</td></tr>
<tr class="memdesc:ga0cdba7faa458e7fb57c31d3cd8788480"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>shmat</code> wrapper function. <a href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">More...</a><br /></td></tr>
<tr class="separator:ga0cdba7faa458e7fb57c31d3cd8788480"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1682328cd34b592404ff030779b0428f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga1682328cd34b592404ff030779b0428f">pshmdt</a> (const void *shmaddr)</td></tr>
<tr class="memdesc:ga1682328cd34b592404ff030779b0428f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>shmdt</code> wrapper function. <a href="group__process.html#ga1682328cd34b592404ff030779b0428f">More...</a><br /></td></tr>
<tr class="separator:ga1682328cd34b592404ff030779b0428f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">System V - semaphores</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="sem"></a> </p><dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="process_8h.html">process.h</a>&gt;</span> <span class="comment">// #include &lt;sys/sem.h&gt;</span></div>
<div class="line">...</div>
<div class="line">int semid;</div>
<div class="line"><span class="comment">// creation:</span></div>
<div class="line">semid = <a class="code" href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">psemget</a>(key, 1, 0600 | IPC_CREAT | IPC_EXCL); <span class="comment">// 1 semaphore!</span></div>
<div class="line"><span class="comment">// or, use existing:</span></div>
<div class="line">semid = <a class="code" href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">psemget</a>(key, 0, 0);</div>
<div class="line">...</div>
<div class="line"><span class="comment">// decrement:</span></div>
<div class="line">struct sembuf down = {0, -1, 0};</div>
<div class="line"><a class="code" href="group__process.html#ga0e2534c82b54573590d913c297cc4840">psemop</a>(semid, &amp;down, 1);</div>
<div class="line"><span class="comment">// or, simply use provided function:</span></div>
<div class="line"><a class="code" href="group__process.html#gac2b930e9aceda9ef276b21ae8e839c16">psem_down</a>(semid, 0); <span class="comment">// NOTE: there is no sem_down in default library!</span></div>
<div class="line">...</div>
<div class="line"><span class="comment">// increment:</span></div>
<div class="line">struct sembuf up = {0, 1, 0};</div>
<div class="line"><a class="code" href="group__process.html#ga0e2534c82b54573590d913c297cc4840">psemop</a>(semid, &amp;up, 1);</div>
<div class="line"><span class="comment">// or, simply use provided function:</span></div>
<div class="line"><a class="code" href="group__process.html#gaa00610fec639ef123819ceee2ef00da3">psem_up</a>(semid, 0); <span class="comment">// NOTE: there is no sem_up in default library!</span></div>
<div class="line">...</div>
<div class="line"><span class="comment">// destroy sem 0:</span></div>
<div class="line">psemctl(semid, 0, IPC_RMID, NULL);</div>
</div><!-- fragment --> </dd></dl>
</div></td></tr>
<tr class="memitem:gaada159a0fe725ed843ac358be6e6a9d3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">psemget</a> (key_t key, int nsems, int semflg)</td></tr>
<tr class="memdesc:gaada159a0fe725ed843ac358be6e6a9d3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>semget</code> wrapper function. <a href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">More...</a><br /></td></tr>
<tr class="separator:gaada159a0fe725ed843ac358be6e6a9d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac42e869afba098ec9bdd77444ba790c5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gac42e869afba098ec9bdd77444ba790c5">psemctl</a> (int semid, int semnum, int cmd)</td></tr>
<tr class="memdesc:gac42e869afba098ec9bdd77444ba790c5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>semctl</code> wrapper function. <a href="group__process.html#gac42e869afba098ec9bdd77444ba790c5">More...</a><br /></td></tr>
<tr class="separator:gac42e869afba098ec9bdd77444ba790c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga808dab47116976fc7866c97b6dddec47"><td class="memItemLeft" align="right" valign="top">
int&#160;</td><td class="memItemRight" valign="bottom"><b>psemctl</b> (int semid, int semnum, int cmd, void *u)</td></tr>
<tr class="separator:ga808dab47116976fc7866c97b6dddec47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e2534c82b54573590d913c297cc4840"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga0e2534c82b54573590d913c297cc4840">psemop</a> (int semid, struct sembuf *sops, size_t nsops)</td></tr>
<tr class="memdesc:ga0e2534c82b54573590d913c297cc4840"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>semop</code> wrapper function. <a href="group__process.html#ga0e2534c82b54573590d913c297cc4840">More...</a><br /></td></tr>
<tr class="separator:ga0e2534c82b54573590d913c297cc4840"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa00610fec639ef123819ceee2ef00da3"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gaa00610fec639ef123819ceee2ef00da3">psem_up</a> (int semid, short unsigned int index)</td></tr>
<tr class="memdesc:gaa00610fec639ef123819ceee2ef00da3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increment a semaphore (uses <a class="el" href="group__process.html#ga0e2534c82b54573590d913c297cc4840" title="semop wrapper function.">psemop()</a>). <br /></td></tr>
<tr class="separator:gaa00610fec639ef123819ceee2ef00da3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2b930e9aceda9ef276b21ae8e839c16"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gac2b930e9aceda9ef276b21ae8e839c16">psem_down</a> (int semid, short unsigned int index)</td></tr>
<tr class="memdesc:gac2b930e9aceda9ef276b21ae8e839c16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrements a semaphore (uses <a class="el" href="group__process.html#ga0e2534c82b54573590d913c297cc4840" title="semop wrapper function.">psemop()</a>). <br /></td></tr>
<tr class="separator:gac2b930e9aceda9ef276b21ae8e839c16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47891b55ba91af98c5b45cbcf154bc20"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga47891b55ba91af98c5b45cbcf154bc20">psem_down2</a> (int semid, short unsigned int index1, unsigned int index2)</td></tr>
<tr class="memdesc:ga47891b55ba91af98c5b45cbcf154bc20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrements atomically two semaphores in a System V semaphore array (uses <a class="el" href="group__process.html#ga0e2534c82b54573590d913c297cc4840" title="semop wrapper function.">psemop()</a>). <br /></td></tr>
<tr class="separator:ga47891b55ba91af98c5b45cbcf154bc20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">System V - message queues</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="msg"></a> </p><dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="process_8h.html">process.h</a>&gt;</span> <span class="comment">// #include &lt;sys/msg.h&gt;</span></div>
<div class="line">...</div>
<div class="line">typedef <span class="keyword">struct </span>Item</div>
<div class="line">{</div>
<div class="line"> ...</div>
<div class="line">} Item;</div>
<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>Message</div>
<div class="line">{</div>
<div class="line"> <span class="keywordtype">long</span> type;</div>
<div class="line"> Item item;</div>
<div class="line">} Message;</div>
<div class="line">...</div>
<div class="line">int msgid;</div>
<div class="line"><span class="comment">// creation:</span></div>
<div class="line">msgid = <a class="code" href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">pmsgget</a>(key, 0600 | IPC_CREAT | IPC_EXCL);</div>
<div class="line"><span class="comment">// or, use existing:</span></div>
<div class="line">msgid = <a class="code" href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">pmsgget</a>(key, 0);</div>
<div class="line">...</div>
<div class="line">Message msg;</div>
<div class="line"><span class="comment">// send msg:</span></div>
<div class="line">msg = ...;</div>
<div class="line"><a class="code" href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">pmsgsnd</a>(msgid, &amp;msg, <span class="keyword">sizeof</span>(Item), 0);</div>
<div class="line">...</div>
<div class="line"><span class="comment">// receive msg:</span></div>
<div class="line">pmsgrcv(msgid, &amp;msg, <span class="keyword">sizeof</span>(Item), type, 0);</div>
<div class="line">...</div>
<div class="line"><span class="comment">// destroy msg:</span></div>
<div class="line">pmsgctl(msgid, IPC_RMID, NULL);</div>
</div><!-- fragment --> </dd></dl>
</div></td></tr>
<tr class="memitem:gad426e03bc9b8dae5f1fbf889ce2dd8f7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">pmsgget</a> (key_t key, int msgflg)</td></tr>
<tr class="memdesc:gad426e03bc9b8dae5f1fbf889ce2dd8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>msgget</code> wrapper function. <a href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">More...</a><br /></td></tr>
<tr class="separator:gad426e03bc9b8dae5f1fbf889ce2dd8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13bfac41329ec74b2aa4950f9586ae9f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f">pmsgctl</a> (int msqid, int cmd, struct msqid_ds *buf)</td></tr>
<tr class="memdesc:ga13bfac41329ec74b2aa4950f9586ae9f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>msgctl</code> wrapper function. <a href="group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f">More...</a><br /></td></tr>
<tr class="separator:ga13bfac41329ec74b2aa4950f9586ae9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeeb6cd0ab585a7769cd17405f600e56a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">pmsgsnd</a> (int msqid, const void *msgp, size_t msgsz, int msgflg)</td></tr>
<tr class="memdesc:gaeeb6cd0ab585a7769cd17405f600e56a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>msgsnd</code> wrapper function. <a href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">More...</a><br /></td></tr>
<tr class="separator:gaeeb6cd0ab585a7769cd17405f600e56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd4e4161a46bfa2e1f23eb1d49aaa07b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b">pmsgrcv</a> (int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)</td></tr>
<tr class="memdesc:gacd4e4161a46bfa2e1f23eb1d49aaa07b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>msgrcv</code> wrapper function. <a href="group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b">More...</a><br /></td></tr>
<tr class="separator:gacd4e4161a46bfa2e1f23eb1d49aaa07b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">POSIX semaphores</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="posix_sem"></a></p>
</div></td></tr>
<tr class="memitem:ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba"><td class="memItemLeft" align="right" valign="top">sem_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba">psem_open</a> (const char *name, int oflag)</td></tr>
<tr class="memdesc:ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_open</code> wrapper function. <a href="group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba">More...</a><br /></td></tr>
<tr class="separator:ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfb2ccd43b219304d77429977a3fb70b"><td class="memItemLeft" align="right" valign="top">
sem_t *&#160;</td><td class="memItemRight" valign="bottom"><b>psem_open</b> (const char *name, int oflag, mode_t mode, unsigned int value)</td></tr>
<tr class="separator:gabfb2ccd43b219304d77429977a3fb70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41a884c3a9d9ac6a31fc6ab27ae1d668"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668">psem_close</a> (sem_t *sem)</td></tr>
<tr class="memdesc:ga41a884c3a9d9ac6a31fc6ab27ae1d668"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_close</code> wrapper function. <a href="group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668">More...</a><br /></td></tr>
<tr class="separator:ga41a884c3a9d9ac6a31fc6ab27ae1d668"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0415c9c4fab4baafef6cd2d40becd05e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e">psem_unlink</a> (const char *name)</td></tr>
<tr class="memdesc:ga0415c9c4fab4baafef6cd2d40becd05e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_unlink</code> wrapper function. <a href="group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e">More...</a><br /></td></tr>
<tr class="separator:ga0415c9c4fab4baafef6cd2d40becd05e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac49ddb266cec5493ebd756cd9382f99d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gac49ddb266cec5493ebd756cd9382f99d">psem_init</a> (sem_t *sem, int pshared, unsigned int value)</td></tr>
<tr class="memdesc:gac49ddb266cec5493ebd756cd9382f99d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_init</code> wrapper function. <a href="group__process.html#gac49ddb266cec5493ebd756cd9382f99d">More...</a><br /></td></tr>
<tr class="separator:gac49ddb266cec5493ebd756cd9382f99d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga82e3d1015521711a2a6374d6c3771491"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga82e3d1015521711a2a6374d6c3771491">psem_destroy</a> (sem_t *sem)</td></tr>
<tr class="memdesc:ga82e3d1015521711a2a6374d6c3771491"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_destroy</code> wrapper function. <a href="group__process.html#ga82e3d1015521711a2a6374d6c3771491">More...</a><br /></td></tr>
<tr class="separator:ga82e3d1015521711a2a6374d6c3771491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2c867f9f66e74fad44df3f32f87a8c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6">psem_wait</a> (sem_t *sem)</td></tr>
<tr class="memdesc:gae2c867f9f66e74fad44df3f32f87a8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_wait</code> wrapper function. <a href="group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6">More...</a><br /></td></tr>
<tr class="separator:gae2c867f9f66e74fad44df3f32f87a8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga04cb3c84545fe7707c63578e1d59b689"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga04cb3c84545fe7707c63578e1d59b689">psem_trywait</a> (sem_t *sem)</td></tr>
<tr class="memdesc:ga04cb3c84545fe7707c63578e1d59b689"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_trywait</code> wrapper function. <a href="group__process.html#ga04cb3c84545fe7707c63578e1d59b689">More...</a><br /></td></tr>
<tr class="separator:ga04cb3c84545fe7707c63578e1d59b689"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8b2b3d1e18b385f10b389ce2ea734ef"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef">psem_timedwait</a> (sem_t *sem, const struct timespec *abs_timeout)</td></tr>
<tr class="memdesc:gac8b2b3d1e18b385f10b389ce2ea734ef"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_timedwait</code> wrapper function. <a href="group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef">More...</a><br /></td></tr>
<tr class="separator:gac8b2b3d1e18b385f10b389ce2ea734ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad63921c4ec6f0845b752eb59a8935b8e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#gad63921c4ec6f0845b752eb59a8935b8e">psem_post</a> (sem_t *sem)</td></tr>
<tr class="memdesc:gad63921c4ec6f0845b752eb59a8935b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sem_post</code> wrapper function. <a href="group__process.html#gad63921c4ec6f0845b752eb59a8935b8e">More...</a><br /></td></tr>
<tr class="separator:gad63921c4ec6f0845b752eb59a8935b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">UNIX pipes</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="pipes"></a></p>
</div></td></tr>
<tr class="memitem:ga013466fa89ac97a0db0ccd78168a8456"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga013466fa89ac97a0db0ccd78168a8456">ppipe</a> (int pipefd[2])</td></tr>
<tr class="memdesc:ga013466fa89ac97a0db0ccd78168a8456"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pipe</code> wrapper function. <a href="group__process.html#ga013466fa89ac97a0db0ccd78168a8456">More...</a><br /></td></tr>
<tr class="separator:ga013466fa89ac97a0db0ccd78168a8456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d9df322812707050312aa24d15a4360"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga2d9df322812707050312aa24d15a4360">ppopen</a> (const char *command, const char *type)</td></tr>
<tr class="memdesc:ga2d9df322812707050312aa24d15a4360"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>popen</code> wrapper function. <a href="group__process.html#ga2d9df322812707050312aa24d15a4360">More...</a><br /></td></tr>
<tr class="separator:ga2d9df322812707050312aa24d15a4360"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1490f6e0ca0ebf607d1f5ff431c79b68"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68">ppclose</a> (FILE *stream)</td></tr>
<tr class="memdesc:ga1490f6e0ca0ebf607d1f5ff431c79b68"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pclose</code> wrapper function. <a href="group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68">More...</a><br /></td></tr>
<tr class="separator:ga1490f6e0ca0ebf607d1f5ff431c79b68"><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="el" href="group__process.html#process">Process</a>, <a class="el" href="group__process.html#sysV">System-V</a>, and <a class="el" href="group__process.html#posix_sem">POSIX libraries</a> wrapper module. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Removes defensive programming from native libraries </dd></dl>
</div></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="agroup__process_html_ga0cdba7faa458e7fb57c31d3cd8788480"><div class="ttname"><a href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">pshmat</a></div><div class="ttdeci">void * pshmat(int shmid, const void *shmaddr, int shmflg)</div><div class="ttdoc">shmat wrapper function.</div></div>
<div class="ttc" id="aprocess_8h_html"><div class="ttname"><a href="process_8h.html">process.h</a></div><div class="ttdoc">Process, System-V, and POSIX libraries wrapper module.</div></div>
<div class="ttc" id="agroup__process_html_gaada159a0fe725ed843ac358be6e6a9d3"><div class="ttname"><a href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">psemget</a></div><div class="ttdeci">int psemget(key_t key, int nsems, int semflg)</div><div class="ttdoc">semget wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gaff71624be0fc9c76e0c72295721875e6"><div class="ttname"><a href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">pshmget</a></div><div class="ttdeci">int pshmget(key_t key, size_t size, int shmflg)</div><div class="ttdoc">shmget wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gaeeb6cd0ab585a7769cd17405f600e56a"><div class="ttname"><a href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">pmsgsnd</a></div><div class="ttdeci">void pmsgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg)</div><div class="ttdoc">msgsnd wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gad426e03bc9b8dae5f1fbf889ce2dd8f7"><div class="ttname"><a href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">pmsgget</a></div><div class="ttdeci">int pmsgget(key_t key, int msgflg)</div><div class="ttdoc">msgget wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gac2b930e9aceda9ef276b21ae8e839c16"><div class="ttname"><a href="group__process.html#gac2b930e9aceda9ef276b21ae8e839c16">psem_down</a></div><div class="ttdeci">void psem_down(int semid, short unsigned int index)</div><div class="ttdoc">Decrements a semaphore (uses psemop()).</div></div>
<div class="ttc" id="agroup__process_html_gaa00610fec639ef123819ceee2ef00da3"><div class="ttname"><a href="group__process.html#gaa00610fec639ef123819ceee2ef00da3">psem_up</a></div><div class="ttdeci">void psem_up(int semid, short unsigned int index)</div><div class="ttdoc">Increment a semaphore (uses psemop()).</div></div>
<div class="ttc" id="agroup__process_html_ga0e2534c82b54573590d913c297cc4840"><div class="ttname"><a href="group__process.html#ga0e2534c82b54573590d913c297cc4840">psemop</a></div><div class="ttdeci">void psemop(int semid, struct sembuf *sops, size_t nsops)</div><div class="ttdoc">semop wrapper function.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="process_8h.html">process.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,35 +0,0 @@
var process_8h =
[
[ "pfork", "group__process.html#ga67e00aff1839b1ba68c83947593f625b", null ],
[ "pwait", "group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1", null ],
[ "pwaitpid", "group__process.html#gac926bd7ccd173f742b5d58f51cabcb48", null ],
[ "pkill", "group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8", null ],
[ "pexecl", "group__process.html#gae5d3e8ac00f0e788f21020699bac758a", null ],
[ "psigaction", "group__process.html#ga7c7f6de68bd3dea8a702668090a65854", null ],
[ "pshmget", "group__process.html#gaff71624be0fc9c76e0c72295721875e6", null ],
[ "pshmctl", "group__process.html#ga3119bdf5486059aee6ec3ed65a01b319", null ],
[ "pshmat", "group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480", null ],
[ "pshmdt", "group__process.html#ga1682328cd34b592404ff030779b0428f", null ],
[ "psemget", "group__process.html#gaada159a0fe725ed843ac358be6e6a9d3", null ],
[ "psemctl", "group__process.html#gac42e869afba098ec9bdd77444ba790c5", null ],
[ "psemop", "group__process.html#ga0e2534c82b54573590d913c297cc4840", null ],
[ "psem_up", "group__process.html#gaa00610fec639ef123819ceee2ef00da3", null ],
[ "psem_down", "group__process.html#gac2b930e9aceda9ef276b21ae8e839c16", null ],
[ "psem_down2", "group__process.html#ga47891b55ba91af98c5b45cbcf154bc20", null ],
[ "pmsgget", "group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7", null ],
[ "pmsgctl", "group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f", null ],
[ "pmsgsnd", "group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a", null ],
[ "pmsgrcv", "group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b", null ],
[ "psem_open", "group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba", null ],
[ "psem_close", "group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668", null ],
[ "psem_unlink", "group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e", null ],
[ "psem_init", "group__process.html#gac49ddb266cec5493ebd756cd9382f99d", null ],
[ "psem_destroy", "group__process.html#ga82e3d1015521711a2a6374d6c3771491", null ],
[ "psem_wait", "group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6", null ],
[ "psem_trywait", "group__process.html#ga04cb3c84545fe7707c63578e1d59b689", null ],
[ "psem_timedwait", "group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef", null ],
[ "psem_post", "group__process.html#gad63921c4ec6f0845b752eb59a8935b8e", null ],
[ "ppipe", "group__process.html#ga013466fa89ac97a0db0ccd78168a8456", null ],
[ "ppopen", "group__process.html#ga2d9df322812707050312aa24d15a4360", null ],
[ "ppclose", "group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68", null ]
];

View File

@ -1,201 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: process.h Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('process_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">process.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="process_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#ifndef PROCESS_H</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#define PROCESS_H</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include &lt;sys/ipc.h&gt;</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &lt;sys/shm.h&gt;</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;sys/sem.h&gt;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#include &lt;semaphore.h&gt;</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#include &lt;signal.h&gt;</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">//#define EXCEPTION_POLICY</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">//#define EXIT_POLICY // DEFAULT</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;pid_t <a class="code" href="group__process.html#ga67e00aff1839b1ba68c83947593f625b">pfork</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;pid_t <a class="code" href="group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1">pwait</a>(<span class="keywordtype">int</span> *status);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;pid_t <a class="code" href="group__process.html#gac926bd7ccd173f742b5d58f51cabcb48">pwaitpid</a>(pid_t pid, <span class="keywordtype">int</span> *status, <span class="keywordtype">int</span> options);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8">pkill</a>(pid_t pid, <span class="keywordtype">int</span> sig);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#gae5d3e8ac00f0e788f21020699bac758a">pexecl</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <span class="keyword">const</span> <span class="keywordtype">char</span> *arg, ... <span class="comment">/* (char *) NULL */</span>);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga7c7f6de68bd3dea8a702668090a65854">psigaction</a>(<span class="keywordtype">int</span> signum, <span class="keyword">const</span> <span class="keyword">struct</span> sigaction *act, <span class="keyword">struct</span> sigaction *oldact);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">pshmget</a>(key_t key, <span class="keywordtype">size_t</span> size, <span class="keywordtype">int</span> shmflg);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#ga3119bdf5486059aee6ec3ed65a01b319">pshmctl</a>(<span class="keywordtype">int</span> shmid, <span class="keywordtype">int</span> cmd, <span class="keyword">struct</span> shmid_ds *buf);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keywordtype">void</span> *<a class="code" href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">pshmat</a>(<span class="keywordtype">int</span> shmid, <span class="keyword">const</span> <span class="keywordtype">void</span> *shmaddr, <span class="keywordtype">int</span> shmflg);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga1682328cd34b592404ff030779b0428f">pshmdt</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *shmaddr);</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">psemget</a>(key_t key, <span class="keywordtype">int</span> nsems, <span class="keywordtype">int</span> semflg);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#gac42e869afba098ec9bdd77444ba790c5">psemctl</a>(<span class="keywordtype">int</span> semid, <span class="keywordtype">int</span> semnum, <span class="keywordtype">int</span> cmd);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#gac42e869afba098ec9bdd77444ba790c5">psemctl</a>(<span class="keywordtype">int</span> semid, <span class="keywordtype">int</span> semnum, <span class="keywordtype">int</span> cmd, <span class="keywordtype">void</span> *u);</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga0e2534c82b54573590d913c297cc4840">psemop</a>(<span class="keywordtype">int</span> semid, <span class="keyword">struct</span> sembuf *sops, <span class="keywordtype">size_t</span> nsops);</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; </div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#gaa00610fec639ef123819ceee2ef00da3">psem_up</a>(<span class="keywordtype">int</span> semid, <span class="keywordtype">short</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#gac2b930e9aceda9ef276b21ae8e839c16">psem_down</a>(<span class="keywordtype">int</span> semid, <span class="keywordtype">short</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga47891b55ba91af98c5b45cbcf154bc20">psem_down2</a>(<span class="keywordtype">int</span> semid, <span class="keywordtype">short</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> index2);</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">pmsgget</a>(key_t key, <span class="keywordtype">int</span> msgflg);</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; </div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f">pmsgctl</a>(<span class="keywordtype">int</span> msqid, <span class="keywordtype">int</span> cmd, <span class="keyword">struct</span> msqid_ds *buf);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; </div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">pmsgsnd</a>(<span class="keywordtype">int</span> msqid, <span class="keyword">const</span> <span class="keywordtype">void</span> *msgp, <span class="keywordtype">size_t</span> msgsz, <span class="keywordtype">int</span> msgflg);</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; </div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b">pmsgrcv</a>(<span class="keywordtype">int</span> msqid, <span class="keywordtype">void</span> *msgp, <span class="keywordtype">size_t</span> msgsz, <span class="keywordtype">long</span> msgtyp, <span class="keywordtype">int</span> msgflg);</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment">// named:</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment"></span>sem_t *<a class="code" href="group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba">psem_open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> oflag);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;sem_t *<a class="code" href="group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba">psem_open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> oflag, mode_t mode, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value);</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668">psem_close</a>(sem_t *sem);</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e">psem_unlink</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="comment">// unnamed:</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__process.html#gac49ddb266cec5493ebd756cd9382f99d">psem_init</a>(sem_t *sem, <span class="keywordtype">int</span> pshared, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> value);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga82e3d1015521711a2a6374d6c3771491">psem_destroy</a>(sem_t *sem);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">// named and unnamed:</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6">psem_wait</a>(sem_t *sem);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#ga04cb3c84545fe7707c63578e1d59b689">psem_trywait</a>(sem_t *sem);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef">psem_timedwait</a>(sem_t *sem, <span class="keyword">const</span> <span class="keyword">struct</span> timespec *abs_timeout);</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; </div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#gad63921c4ec6f0845b752eb59a8935b8e">psem_post</a>(sem_t *sem);</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga013466fa89ac97a0db0ccd78168a8456">ppipe</a>(<span class="keywordtype">int</span> pipefd[2]);</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;FILE *<a class="code" href="group__process.html#ga2d9df322812707050312aa24d15a4360">ppopen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *command, <span class="keyword">const</span> <span class="keywordtype">char</span> *type);</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; </div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68">ppclose</a>(FILE *stream);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; </div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; </div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="agroup__process_html_gac8b2b3d1e18b385f10b389ce2ea734ef"><div class="ttname"><a href="group__process.html#gac8b2b3d1e18b385f10b389ce2ea734ef">psem_timedwait</a></div><div class="ttdeci">int psem_timedwait(sem_t *sem, const struct timespec *abs_timeout)</div><div class="ttdoc">sem_timedwait wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gab546ccee89e3159ea7c23aa3a463a0d8"><div class="ttname"><a href="group__process.html#gab546ccee89e3159ea7c23aa3a463a0d8">pkill</a></div><div class="ttdeci">void pkill(pid_t pid, int sig)</div><div class="ttdoc">kill wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gac49ddb266cec5493ebd756cd9382f99d"><div class="ttname"><a href="group__process.html#gac49ddb266cec5493ebd756cd9382f99d">psem_init</a></div><div class="ttdeci">void psem_init(sem_t *sem, int pshared, unsigned int value)</div><div class="ttdoc">sem_init wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga47891b55ba91af98c5b45cbcf154bc20"><div class="ttname"><a href="group__process.html#ga47891b55ba91af98c5b45cbcf154bc20">psem_down2</a></div><div class="ttdeci">void psem_down2(int semid, short unsigned int index1, unsigned int index2)</div><div class="ttdoc">Decrements atomically two semaphores in a System V semaphore array (uses psemop()).</div></div>
<div class="ttc" id="agroup__process_html_ga04cb3c84545fe7707c63578e1d59b689"><div class="ttname"><a href="group__process.html#ga04cb3c84545fe7707c63578e1d59b689">psem_trywait</a></div><div class="ttdeci">int psem_trywait(sem_t *sem)</div><div class="ttdoc">sem_trywait wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gac42e869afba098ec9bdd77444ba790c5"><div class="ttname"><a href="group__process.html#gac42e869afba098ec9bdd77444ba790c5">psemctl</a></div><div class="ttdeci">int psemctl(int semid, int semnum, int cmd)</div><div class="ttdoc">semctl wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gae2c867f9f66e74fad44df3f32f87a8c6"><div class="ttname"><a href="group__process.html#gae2c867f9f66e74fad44df3f32f87a8c6">psem_wait</a></div><div class="ttdeci">void psem_wait(sem_t *sem)</div><div class="ttdoc">sem_wait wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga0415c9c4fab4baafef6cd2d40becd05e"><div class="ttname"><a href="group__process.html#ga0415c9c4fab4baafef6cd2d40becd05e">psem_unlink</a></div><div class="ttdeci">void psem_unlink(const char *name)</div><div class="ttdoc">sem_unlink wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga0cdba7faa458e7fb57c31d3cd8788480"><div class="ttname"><a href="group__process.html#ga0cdba7faa458e7fb57c31d3cd8788480">pshmat</a></div><div class="ttdeci">void * pshmat(int shmid, const void *shmaddr, int shmflg)</div><div class="ttdoc">shmat wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga1490f6e0ca0ebf607d1f5ff431c79b68"><div class="ttname"><a href="group__process.html#ga1490f6e0ca0ebf607d1f5ff431c79b68">ppclose</a></div><div class="ttdeci">void ppclose(FILE *stream)</div><div class="ttdoc">pclose wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gaada159a0fe725ed843ac358be6e6a9d3"><div class="ttname"><a href="group__process.html#gaada159a0fe725ed843ac358be6e6a9d3">psemget</a></div><div class="ttdeci">int psemget(key_t key, int nsems, int semflg)</div><div class="ttdoc">semget wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga82e3d1015521711a2a6374d6c3771491"><div class="ttname"><a href="group__process.html#ga82e3d1015521711a2a6374d6c3771491">psem_destroy</a></div><div class="ttdeci">void psem_destroy(sem_t *sem)</div><div class="ttdoc">sem_destroy wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga013466fa89ac97a0db0ccd78168a8456"><div class="ttname"><a href="group__process.html#ga013466fa89ac97a0db0ccd78168a8456">ppipe</a></div><div class="ttdeci">void ppipe(int pipefd[2])</div><div class="ttdoc">pipe wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba"><div class="ttname"><a href="group__process.html#ga7bf7fce2d1f344e7dfeeb1b46a9ee7ba">psem_open</a></div><div class="ttdeci">sem_t * psem_open(const char *name, int oflag)</div><div class="ttdoc">sem_open wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gae5d3e8ac00f0e788f21020699bac758a"><div class="ttname"><a href="group__process.html#gae5d3e8ac00f0e788f21020699bac758a">pexecl</a></div><div class="ttdeci">void pexecl(const char *pathname, const char *arg,...)</div><div class="ttdoc">execl wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga67e00aff1839b1ba68c83947593f625b"><div class="ttname"><a href="group__process.html#ga67e00aff1839b1ba68c83947593f625b">pfork</a></div><div class="ttdeci">pid_t pfork(void)</div><div class="ttdoc">fork wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga2d9df322812707050312aa24d15a4360"><div class="ttname"><a href="group__process.html#ga2d9df322812707050312aa24d15a4360">ppopen</a></div><div class="ttdeci">FILE * ppopen(const char *command, const char *type)</div><div class="ttdoc">popen wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gad63921c4ec6f0845b752eb59a8935b8e"><div class="ttname"><a href="group__process.html#gad63921c4ec6f0845b752eb59a8935b8e">psem_post</a></div><div class="ttdeci">void psem_post(sem_t *sem)</div><div class="ttdoc">sem_post wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gaff71624be0fc9c76e0c72295721875e6"><div class="ttname"><a href="group__process.html#gaff71624be0fc9c76e0c72295721875e6">pshmget</a></div><div class="ttdeci">int pshmget(key_t key, size_t size, int shmflg)</div><div class="ttdoc">shmget wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gac926bd7ccd173f742b5d58f51cabcb48"><div class="ttname"><a href="group__process.html#gac926bd7ccd173f742b5d58f51cabcb48">pwaitpid</a></div><div class="ttdeci">pid_t pwaitpid(pid_t pid, int *status, int options)</div><div class="ttdoc">waitpid wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gaeeb6cd0ab585a7769cd17405f600e56a"><div class="ttname"><a href="group__process.html#gaeeb6cd0ab585a7769cd17405f600e56a">pmsgsnd</a></div><div class="ttdeci">void pmsgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg)</div><div class="ttdoc">msgsnd wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gad426e03bc9b8dae5f1fbf889ce2dd8f7"><div class="ttname"><a href="group__process.html#gad426e03bc9b8dae5f1fbf889ce2dd8f7">pmsgget</a></div><div class="ttdeci">int pmsgget(key_t key, int msgflg)</div><div class="ttdoc">msgget wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gac2b930e9aceda9ef276b21ae8e839c16"><div class="ttname"><a href="group__process.html#gac2b930e9aceda9ef276b21ae8e839c16">psem_down</a></div><div class="ttdeci">void psem_down(int semid, short unsigned int index)</div><div class="ttdoc">Decrements a semaphore (uses psemop()).</div></div>
<div class="ttc" id="agroup__process_html_ga3119bdf5486059aee6ec3ed65a01b319"><div class="ttname"><a href="group__process.html#ga3119bdf5486059aee6ec3ed65a01b319">pshmctl</a></div><div class="ttdeci">int pshmctl(int shmid, int cmd, struct shmid_ds *buf)</div><div class="ttdoc">shmctl wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga1682328cd34b592404ff030779b0428f"><div class="ttname"><a href="group__process.html#ga1682328cd34b592404ff030779b0428f">pshmdt</a></div><div class="ttdeci">void pshmdt(const void *shmaddr)</div><div class="ttdoc">shmdt wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga41a884c3a9d9ac6a31fc6ab27ae1d668"><div class="ttname"><a href="group__process.html#ga41a884c3a9d9ac6a31fc6ab27ae1d668">psem_close</a></div><div class="ttdeci">void psem_close(sem_t *sem)</div><div class="ttdoc">sem_close wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga7c7f6de68bd3dea8a702668090a65854"><div class="ttname"><a href="group__process.html#ga7c7f6de68bd3dea8a702668090a65854">psigaction</a></div><div class="ttdeci">void psigaction(int signum, const struct sigaction *act, struct sigaction *oldact)</div><div class="ttdoc">sigaction wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gacd4e4161a46bfa2e1f23eb1d49aaa07b"><div class="ttname"><a href="group__process.html#gacd4e4161a46bfa2e1f23eb1d49aaa07b">pmsgrcv</a></div><div class="ttdeci">size_t pmsgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)</div><div class="ttdoc">msgrcv wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gaa00610fec639ef123819ceee2ef00da3"><div class="ttname"><a href="group__process.html#gaa00610fec639ef123819ceee2ef00da3">psem_up</a></div><div class="ttdeci">void psem_up(int semid, short unsigned int index)</div><div class="ttdoc">Increment a semaphore (uses psemop()).</div></div>
<div class="ttc" id="agroup__process_html_ga13bfac41329ec74b2aa4950f9586ae9f"><div class="ttname"><a href="group__process.html#ga13bfac41329ec74b2aa4950f9586ae9f">pmsgctl</a></div><div class="ttdeci">int pmsgctl(int msqid, int cmd, struct msqid_ds *buf)</div><div class="ttdoc">msgctl wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_gad27b81fee9a0f792c4ba29fd95c967e1"><div class="ttname"><a href="group__process.html#gad27b81fee9a0f792c4ba29fd95c967e1">pwait</a></div><div class="ttdeci">pid_t pwait(int *status)</div><div class="ttdoc">wait wrapper function.</div></div>
<div class="ttc" id="agroup__process_html_ga0e2534c82b54573590d913c297cc4840"><div class="ttname"><a href="group__process.html#ga0e2534c82b54573590d913c297cc4840">psemop</a></div><div class="ttdeci">void psemop(int semid, struct sembuf *sops, size_t nsops)</div><div class="ttdoc">semop wrapper function.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="process_8h.html">process.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,137 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
function initResizable()
{
var cookie_namespace = 'doxygen';
var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
function readCookie(cookie)
{
var myCookie = cookie_namespace+"_"+cookie+"=";
if (document.cookie) {
var index = document.cookie.indexOf(myCookie);
if (index != -1) {
var valStart = index + myCookie.length;
var valEnd = document.cookie.indexOf(";", valStart);
if (valEnd == -1) {
valEnd = document.cookie.length;
}
var val = document.cookie.substring(valStart, valEnd);
return val;
}
}
return 0;
}
function writeCookie(cookie, val, expiration)
{
if (val==undefined) return;
if (expiration == null) {
var date = new Date();
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
expiration = date.toGMTString();
}
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
}
function resizeWidth()
{
var windowWidth = $(window).width() + "px";
var sidenavWidth = $(sidenav).outerWidth();
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
writeCookie('width',sidenavWidth-barWidth, null);
}
function restoreWidth(navWidth)
{
var windowWidth = $(window).width() + "px";
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
sidenav.css({width:navWidth + "px"});
}
function resizeHeight()
{
var headerHeight = header.outerHeight();
var footerHeight = footer.outerHeight();
var windowHeight = $(window).height() - headerHeight - footerHeight;
content.css({height:windowHeight + "px"});
navtree.css({height:windowHeight + "px"});
sidenav.css({height:windowHeight + "px"});
var width=$(window).width();
if (width!=collapsedWidth) {
if (width<desktop_vp && collapsedWidth>=desktop_vp) {
if (!collapsed) {
collapseExpand();
}
} else if (width>desktop_vp && collapsedWidth<desktop_vp) {
if (collapsed) {
collapseExpand();
}
}
collapsedWidth=width;
}
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
}
function collapseExpand()
{
if (sidenav.width()>0) {
restoreWidth(0);
collapsed=true;
}
else {
var width = readCookie('width');
if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
collapsed=false;
}
}
header = $("#top");
sidenav = $("#side-nav");
content = $("#doc-content");
navtree = $("#nav-tree");
footer = $("#nav-path");
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
$(sidenav).resizable({ minWidth: 0 });
$(window).resize(function() { resizeHeight(); });
var device = navigator.userAgent.toLowerCase();
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
if (touch_device) { /* wider split bar for touch only devices */
$(sidenav).css({ paddingRight:'20px' });
$('.ui-resizable-e').css({ width:'20px' });
$('#nav-sync').css({ right:'34px' });
barWidth=20;
}
var width = readCookie('width');
if (width) { restoreWidth(width); } else { resizeWidth(); }
resizeHeight();
var url = location.href;
var i=url.indexOf("#");
if (i>=0) window.location.hash=url.substr(i);
var _preventDefault = function(evt) { evt.preventDefault(); };
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
$(".ui-resizable-handle").dblclick(collapseExpand);
$(window).on('load',resizeHeight);
}
/* @license-end */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 845 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 B

File diff suppressed because one or more lines are too long

View File

@ -1,263 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: thread.h File 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('thread_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">thread.h File Reference<div class="ingroups"><a class="el" href="group__thread.html">thread</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>POSIX threads library wrapper module.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;pthread.h&gt;</code><br />
</div>
<p><a href="thread_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Thread handling</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_t</code></p>
<p><a class="anchor" id="thread"></a></p>
</div></td></tr>
<tr class="memitem:gadca8bdcec91b8985370d904591d342b8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gadca8bdcec91b8985370d904591d342b8">thread_equal</a> (pthread_t t1, pthread_t t2)</td></tr>
<tr class="memdesc:gadca8bdcec91b8985370d904591d342b8"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_equal</code> wrapper function. <a href="group__thread.html#gadca8bdcec91b8985370d904591d342b8">More...</a><br /></td></tr>
<tr class="separator:gadca8bdcec91b8985370d904591d342b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a0f9920a321b54c41c098d3461d3889"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga3a0f9920a321b54c41c098d3461d3889">thread_create</a> (pthread_t *t, pthread_attr_t *attr, void *(*thread_main)(void *), void *arg)</td></tr>
<tr class="memdesc:ga3a0f9920a321b54c41c098d3461d3889"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_create</code> wrapper function. <a href="group__thread.html#ga3a0f9920a321b54c41c098d3461d3889">More...</a><br /></td></tr>
<tr class="separator:ga3a0f9920a321b54c41c098d3461d3889"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga606fdef53f997c231e0e1e9e54b350d4"><td class="memItemLeft" align="right" valign="top">pthread_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4">thread_self</a> ()</td></tr>
<tr class="memdesc:ga606fdef53f997c231e0e1e9e54b350d4"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_self</code> wrapper function. <a href="group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4">More...</a><br /></td></tr>
<tr class="separator:ga606fdef53f997c231e0e1e9e54b350d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga952c63101c667d247f0923b609710c72"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga952c63101c667d247f0923b609710c72">thread_sched_yield</a> (void)</td></tr>
<tr class="memdesc:ga952c63101c667d247f0923b609710c72"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>sched_yield</code> wrapper function. <a href="group__thread.html#ga952c63101c667d247f0923b609710c72">More...</a><br /></td></tr>
<tr class="separator:ga952c63101c667d247f0923b609710c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19b16adf05364471bae2840aa564329a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga19b16adf05364471bae2840aa564329a">thread_exit</a> (void *retval)</td></tr>
<tr class="memdesc:ga19b16adf05364471bae2840aa564329a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_exit</code> wrapper function. <a href="group__thread.html#ga19b16adf05364471bae2840aa564329a">More...</a><br /></td></tr>
<tr class="separator:ga19b16adf05364471bae2840aa564329a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86aa7989874009c886bea9d41700e25c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga86aa7989874009c886bea9d41700e25c">thread_detach</a> (pthread_t thread)</td></tr>
<tr class="memdesc:ga86aa7989874009c886bea9d41700e25c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_detach</code> wrapper function. <a href="group__thread.html#ga86aa7989874009c886bea9d41700e25c">More...</a><br /></td></tr>
<tr class="separator:ga86aa7989874009c886bea9d41700e25c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b2370a45c1518f777493526b2e4f46d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga2b2370a45c1518f777493526b2e4f46d">thread_join</a> (pthread_t t, void **result)</td></tr>
<tr class="memdesc:ga2b2370a45c1518f777493526b2e4f46d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_join</code> wrapper function. <a href="group__thread.html#ga2b2370a45c1518f777493526b2e4f46d">More...</a><br /></td></tr>
<tr class="separator:ga2b2370a45c1518f777493526b2e4f46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Mutexes</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_mutex_t</code></p>
<p>Initialization of mutexes can be static or dynamic.</p>
<p>In static initialization the following initialization macros are suggested:</p><ul>
<li><code>PTHREAD_MUTEX_INITIALIZER</code> - standard initializer</li>
<li><code>PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP</code> - initializer that ensures error checking</li>
<li><code>PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP</code> - for recursive mutexes (note that recursive mutexes should be avoid)</li>
</ul>
<p>Dynamic initialization is done by <a class="el" href="group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6" title="pthread_mutex_init wrapper function.">mutex_init()</a> and <a class="el" href="group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01" title="pthread_mutex_destroy wrapper function.">mutex_destroy()</a>.</p>
<p><a class="anchor" id="mutex"></a></p>
</div></td></tr>
<tr class="memitem:ga3f227a19d6a339ce0aeda15775e5e6e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6">mutex_init</a> (pthread_mutex_t *pmtx, pthread_mutexattr_t *attr)</td></tr>
<tr class="memdesc:ga3f227a19d6a339ce0aeda15775e5e6e6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutex_init</code> wrapper function. <a href="group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6">More...</a><br /></td></tr>
<tr class="separator:ga3f227a19d6a339ce0aeda15775e5e6e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ebb836d0f83eac719f2cdd336497b01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01">mutex_destroy</a> (pthread_mutex_t *pmtx)</td></tr>
<tr class="memdesc:ga5ebb836d0f83eac719f2cdd336497b01"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutex_destroy</code> wrapper function. <a href="group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01">More...</a><br /></td></tr>
<tr class="separator:ga5ebb836d0f83eac719f2cdd336497b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga87086ba0f13f6ddc479a6bc803a10c39"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39">mutex_lock</a> (pthread_mutex_t *pmtx)</td></tr>
<tr class="memdesc:ga87086ba0f13f6ddc479a6bc803a10c39"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutex_lock</code> wrapper function. <a href="group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39">More...</a><br /></td></tr>
<tr class="separator:ga87086ba0f13f6ddc479a6bc803a10c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bd074884e1c92e88ca8ea0552d9a928"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928">mutex_trylock</a> (pthread_mutex_t *pmtx)</td></tr>
<tr class="memdesc:ga8bd074884e1c92e88ca8ea0552d9a928"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutex_trylock</code> wrapper function. <a href="group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928">More...</a><br /></td></tr>
<tr class="separator:ga8bd074884e1c92e88ca8ea0552d9a928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga95235231165ebda870afa10ba5fd6c41"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga95235231165ebda870afa10ba5fd6c41">mutex_unlock</a> (pthread_mutex_t *pmtx)</td></tr>
<tr class="memdesc:ga95235231165ebda870afa10ba5fd6c41"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutex_unlock</code> wrapper function. <a href="group__thread.html#ga95235231165ebda870afa10ba5fd6c41">More...</a><br /></td></tr>
<tr class="separator:ga95235231165ebda870afa10ba5fd6c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Condition variables</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_cond_t</code></p>
<p>Initialization of condition variables can be static or dynamic.</p>
<p>In static initialization the following initialization macros should be used:</p><ul>
<li><code>PTHREAD_COND_INITIALIZER</code> - standard initializer</li>
</ul>
<p>Dynamic initialization is done by <a class="el" href="group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad" title="pthread_cond_init wrapper function.">cond_init()</a> and <a class="el" href="group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80" title="pthread_cond_destroy wrapper function.">cond_destroy()</a>.</p>
<p><a class="anchor" id="cvar"></a></p>
</div></td></tr>
<tr class="memitem:ga31e5eaf158d118d0e4ef7fd47368eaad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad">cond_init</a> (pthread_cond_t *pcvar, pthread_condattr_t *attr)</td></tr>
<tr class="memdesc:ga31e5eaf158d118d0e4ef7fd47368eaad"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cond_init</code> wrapper function. <a href="group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad">More...</a><br /></td></tr>
<tr class="separator:ga31e5eaf158d118d0e4ef7fd47368eaad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad663c43fbfbb4f660d48b07e110c8f80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80">cond_destroy</a> (pthread_cond_t *pcvar)</td></tr>
<tr class="memdesc:gad663c43fbfbb4f660d48b07e110c8f80"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cond_destroy</code> wrapper function. <a href="group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80">More...</a><br /></td></tr>
<tr class="separator:gad663c43fbfbb4f660d48b07e110c8f80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1123643838d5174ccd41f52f4169e896"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga1123643838d5174ccd41f52f4169e896">cond_wait</a> (pthread_cond_t *pcvar, pthread_mutex_t *pmtx)</td></tr>
<tr class="memdesc:ga1123643838d5174ccd41f52f4169e896"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cond_wait</code> wrapper function. <a href="group__thread.html#ga1123643838d5174ccd41f52f4169e896">More...</a><br /></td></tr>
<tr class="separator:ga1123643838d5174ccd41f52f4169e896"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8cd2040836c30e4f0ea17abe4f66b8e2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2">cond_timedwait</a> (pthread_cond_t *pcvar, pthread_mutex_t *pmtx, const struct timespec *abstime)</td></tr>
<tr class="memdesc:ga8cd2040836c30e4f0ea17abe4f66b8e2"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cond_timedwait</code> wrapper function. <a href="group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2">More...</a><br /></td></tr>
<tr class="separator:ga8cd2040836c30e4f0ea17abe4f66b8e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b41089ba3cd8ad0a539b42bc8b95d6b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga4b41089ba3cd8ad0a539b42bc8b95d6b">cond_timedwait</a> (pthread_cond_t *pcvar, pthread_mutex_t *pmtx, long relative_time_us)</td></tr>
<tr class="memdesc:ga4b41089ba3cd8ad0a539b42bc8b95d6b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cond_timedwait</code> wrapper function accepting relative time (in microseconds) instead of absolute time. <a href="group__thread.html#ga4b41089ba3cd8ad0a539b42bc8b95d6b">More...</a><br /></td></tr>
<tr class="separator:ga4b41089ba3cd8ad0a539b42bc8b95d6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9624688b577fb653af7a528848cc53d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga9624688b577fb653af7a528848cc53d5">cond_signal</a> (pthread_cond_t *pcvar)</td></tr>
<tr class="memdesc:ga9624688b577fb653af7a528848cc53d5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cond_signal</code> wrapper function. <a href="group__thread.html#ga9624688b577fb653af7a528848cc53d5">More...</a><br /></td></tr>
<tr class="separator:ga9624688b577fb653af7a528848cc53d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6459039ab27da7237dda2bbc866eb2d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0">cond_broadcast</a> (pthread_cond_t *pcvar)</td></tr>
<tr class="memdesc:ga6459039ab27da7237dda2bbc866eb2d0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cond_broadcast</code> wrapper function. <a href="group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0">More...</a><br /></td></tr>
<tr class="separator:ga6459039ab27da7237dda2bbc866eb2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">One-time initialization</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_once_t</code></p>
<p>POSIX thread library support a mechanism that ensures a one-time execution of a function. It does it through <code>pthread_once_t</code> variables, and by passing a callback function (in C/C++ is simply a function pointer).</p>
<dl class="section user"><dt>Example</dt><dd><pre class="fragment"> void once_init_routine(void) { ... }
...
pthread_once_t once_control = PTHREAD_ONCE_INIT;
thread_once(&amp;once_control, &amp;once_init_routine); // one time execution over pthread_once_t
// variable is guaranteed, regardless of the
// number of threads that execute over that
// variable.
</pre></dd></dl>
<p><a class="anchor" id="thread_once"></a></p>
</div></td></tr>
<tr class="memitem:gad0428e8a0809704f4b3d682f26d3ef1c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c">thread_once</a> (pthread_once_t *once_control, void(*init_routine)(void))</td></tr>
<tr class="memdesc:gad0428e8a0809704f4b3d682f26d3ef1c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_once</code> wrapper function. <a href="group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c">More...</a><br /></td></tr>
<tr class="separator:gad0428e8a0809704f4b3d682f26d3ef1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Thread-specific data</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_key_t</code></p>
<p>Thread-specific data allows the definition of variable whose scope is limited to each thread. In practice, we will have a common variable, with a common access, but with different values for each thread.</p>
<p><a class="anchor" id="thread_specific"></a></p>
</div></td></tr>
<tr class="memitem:ga7df1983f57dca40a86a55d215d13d42b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga7df1983f57dca40a86a55d215d13d42b">thread_key_create</a> (pthread_key_t *key, void(*destr_function)(void *))</td></tr>
<tr class="memdesc:ga7df1983f57dca40a86a55d215d13d42b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_key_create</code> wrapper function. <a href="group__thread.html#ga7df1983f57dca40a86a55d215d13d42b">More...</a><br /></td></tr>
<tr class="separator:ga7df1983f57dca40a86a55d215d13d42b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65a50dfc97c087a28cb916e0f30f760e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e">thread_key_delete</a> (pthread_key_t key)</td></tr>
<tr class="memdesc:ga65a50dfc97c087a28cb916e0f30f760e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_key_delete</code> wrapper function. <a href="group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e">More...</a><br /></td></tr>
<tr class="separator:ga65a50dfc97c087a28cb916e0f30f760e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3008b033f2830e79179a882a2b74c8ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga3008b033f2830e79179a882a2b74c8ba">thread_setspecific</a> (pthread_key_t key, void *pointer)</td></tr>
<tr class="memdesc:ga3008b033f2830e79179a882a2b74c8ba"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_setspecific</code> wrapper function. <a href="group__thread.html#ga3008b033f2830e79179a882a2b74c8ba">More...</a><br /></td></tr>
<tr class="separator:ga3008b033f2830e79179a882a2b74c8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d207f1bb2e1d493b68a026b8650cb16"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16">thread_getspecific</a> (pthread_key_t key)</td></tr>
<tr class="memdesc:ga0d207f1bb2e1d493b68a026b8650cb16"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_getspecific</code> wrapper function. <a href="group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16">More...</a><br /></td></tr>
<tr class="separator:ga0d207f1bb2e1d493b68a026b8650cb16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Mutex attributes</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_mutexattr_t</code></p>
<p><a class="anchor" id="mutex_attr"></a></p>
</div></td></tr>
<tr class="memitem:ga9fb2733a01e8d668a2022005ea5dbebd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd">mutexattr_init</a> (pthread_mutexattr_t *attr)</td></tr>
<tr class="memdesc:ga9fb2733a01e8d668a2022005ea5dbebd"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutexattr_init</code> wrapper function. <a href="group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd">More...</a><br /></td></tr>
<tr class="separator:ga9fb2733a01e8d668a2022005ea5dbebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga07bf0e49b1f2cb99d3a2955641c676d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5">mutexattr_destroy</a> (pthread_mutexattr_t *attr)</td></tr>
<tr class="memdesc:ga07bf0e49b1f2cb99d3a2955641c676d5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutexattr_destroy</code> wrapper function. <a href="group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5">More...</a><br /></td></tr>
<tr class="separator:ga07bf0e49b1f2cb99d3a2955641c676d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga601a6a9527d7d5ee2ca2870cddc4afc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2">mutexattr_settype</a> (pthread_mutexattr_t *attr, int type)</td></tr>
<tr class="memdesc:ga601a6a9527d7d5ee2ca2870cddc4afc2"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutexattr_settype</code> wrapper function. <a href="group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2">More...</a><br /></td></tr>
<tr class="separator:ga601a6a9527d7d5ee2ca2870cddc4afc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf741e1818d53c5b7d71cd68e161b215"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gadf741e1818d53c5b7d71cd68e161b215">mutexattr_gettype</a> (const pthread_mutexattr_t *attr, int *kind)</td></tr>
<tr class="memdesc:gadf741e1818d53c5b7d71cd68e161b215"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_mutexattr_gettype</code> wrapper function. <a href="group__thread.html#gadf741e1818d53c5b7d71cd68e161b215">More...</a><br /></td></tr>
<tr class="separator:gadf741e1818d53c5b7d71cd68e161b215"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Condition variables attributes</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_condattr_t</code></p>
<p><a class="anchor" id="cond_attr"></a></p>
</div></td></tr>
<tr class="memitem:gab8073c72be896ba9d711d887a5405a74"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gab8073c72be896ba9d711d887a5405a74">condattr_init</a> (pthread_condattr_t *attr)</td></tr>
<tr class="memdesc:gab8073c72be896ba9d711d887a5405a74"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_condattr_init</code> wrapper function. <a href="group__thread.html#gab8073c72be896ba9d711d887a5405a74">More...</a><br /></td></tr>
<tr class="separator:gab8073c72be896ba9d711d887a5405a74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4644f4989b30ccfb2e908017c43bd0d0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0">condattr_destroy</a> (pthread_condattr_t *attr)</td></tr>
<tr class="memdesc:ga4644f4989b30ccfb2e908017c43bd0d0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_condattr_destroy</code> wrapper function. <a href="group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0">More...</a><br /></td></tr>
<tr class="separator:ga4644f4989b30ccfb2e908017c43bd0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Thread attributes</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Variable type: <code>pthread_attr_t</code></p>
<p><a class="anchor" id="thread_attr"></a></p>
</div></td></tr>
<tr class="memitem:gaaf2db7012069f0006e7ffaf257d8ccc6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6">thread_attr_init</a> (pthread_attr_t *attr)</td></tr>
<tr class="memdesc:gaaf2db7012069f0006e7ffaf257d8ccc6"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_attr_init</code> wrapper function. <a href="group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6">More...</a><br /></td></tr>
<tr class="separator:gaaf2db7012069f0006e7ffaf257d8ccc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3a9c2c051deee01e21c75f0fa8b2e9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c">thread_attr_destroy</a> (pthread_attr_t *attr)</td></tr>
<tr class="memdesc:gaf3a9c2c051deee01e21c75f0fa8b2e9c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_attr_destroy</code> wrapper function. <a href="group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c">More...</a><br /></td></tr>
<tr class="separator:gaf3a9c2c051deee01e21c75f0fa8b2e9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabc82fea1785fc82aeb2f43cdd77b9b0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f">thread_attr_setdetachstate</a> (pthread_attr_t *attr, int detachstate)</td></tr>
<tr class="memdesc:gabc82fea1785fc82aeb2f43cdd77b9b0f"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_attr_setdetachstate</code> wrapper function. <a href="group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f">More...</a><br /></td></tr>
<tr class="separator:gabc82fea1785fc82aeb2f43cdd77b9b0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae83c8617612c1bb481fec2b382ac9c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4">thread_attr_getdetachstate</a> (const pthread_attr_t *attr, int *pdetachstate)</td></tr>
<tr class="memdesc:gaae83c8617612c1bb481fec2b382ac9c4"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_attr_getdetachstate</code> wrapper function. <a href="group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4">More...</a><br /></td></tr>
<tr class="separator:gaae83c8617612c1bb481fec2b382ac9c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Cancellation</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="thread_cancellation"></a></p>
</div></td></tr>
<tr class="memitem:ga1b3cb53565eabe02a36e000e5244dfd1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1">thread_cancel</a> (pthread_t thread)</td></tr>
<tr class="memdesc:ga1b3cb53565eabe02a36e000e5244dfd1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_cancel</code> wrapper function. <a href="group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1">More...</a><br /></td></tr>
<tr class="separator:ga1b3cb53565eabe02a36e000e5244dfd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98baffe08beec792f3428ae9ddad966e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga98baffe08beec792f3428ae9ddad966e">thread_setcancelstate</a> (int state, int *oldstate)</td></tr>
<tr class="memdesc:ga98baffe08beec792f3428ae9ddad966e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_setcancelstate</code> wrapper function. <a href="group__thread.html#ga98baffe08beec792f3428ae9ddad966e">More...</a><br /></td></tr>
<tr class="separator:ga98baffe08beec792f3428ae9ddad966e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab4ec114c7b59f8f4185bac648b256d0c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c">thread_setcanceltype</a> (int type, int *oldtype)</td></tr>
<tr class="memdesc:gab4ec114c7b59f8f4185bac648b256d0c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_setcanceltype</code> wrapper function. <a href="group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c">More...</a><br /></td></tr>
<tr class="separator:gab4ec114c7b59f8f4185bac648b256d0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81bdb13d62e16ad7cb3cbd263c9a5671"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671">thread_testcancel</a> (void)</td></tr>
<tr class="memdesc:ga81bdb13d62e16ad7cb3cbd263c9a5671"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>pthread_testcancel</code> wrapper function. <a href="group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671">More...</a><br /></td></tr>
<tr class="separator:ga81bdb13d62e16ad7cb3cbd263c9a5671"><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>POSIX threads library wrapper module. </p>
<dl class="section remark"><dt>Remarks</dt><dd>Removes defensive programming from native libraries </dd></dl>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="thread_8h.html">thread.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,41 +0,0 @@
var thread_8h =
[
[ "thread_equal", "group__thread.html#gadca8bdcec91b8985370d904591d342b8", null ],
[ "thread_create", "group__thread.html#ga3a0f9920a321b54c41c098d3461d3889", null ],
[ "thread_self", "group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4", null ],
[ "thread_sched_yield", "group__thread.html#ga952c63101c667d247f0923b609710c72", null ],
[ "thread_exit", "group__thread.html#ga19b16adf05364471bae2840aa564329a", null ],
[ "thread_detach", "group__thread.html#ga86aa7989874009c886bea9d41700e25c", null ],
[ "thread_join", "group__thread.html#ga2b2370a45c1518f777493526b2e4f46d", null ],
[ "mutex_init", "group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6", null ],
[ "mutex_destroy", "group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01", null ],
[ "mutex_lock", "group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39", null ],
[ "mutex_trylock", "group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928", null ],
[ "mutex_unlock", "group__thread.html#ga95235231165ebda870afa10ba5fd6c41", null ],
[ "cond_init", "group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad", null ],
[ "cond_destroy", "group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80", null ],
[ "cond_wait", "group__thread.html#ga1123643838d5174ccd41f52f4169e896", null ],
[ "cond_timedwait", "group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2", null ],
[ "cond_timedwait", "group__thread.html#ga4b41089ba3cd8ad0a539b42bc8b95d6b", null ],
[ "cond_signal", "group__thread.html#ga9624688b577fb653af7a528848cc53d5", null ],
[ "cond_broadcast", "group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0", null ],
[ "thread_once", "group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c", null ],
[ "thread_key_create", "group__thread.html#ga7df1983f57dca40a86a55d215d13d42b", null ],
[ "thread_key_delete", "group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e", null ],
[ "thread_setspecific", "group__thread.html#ga3008b033f2830e79179a882a2b74c8ba", null ],
[ "thread_getspecific", "group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16", null ],
[ "mutexattr_init", "group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd", null ],
[ "mutexattr_destroy", "group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5", null ],
[ "mutexattr_settype", "group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2", null ],
[ "mutexattr_gettype", "group__thread.html#gadf741e1818d53c5b7d71cd68e161b215", null ],
[ "condattr_init", "group__thread.html#gab8073c72be896ba9d711d887a5405a74", null ],
[ "condattr_destroy", "group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0", null ],
[ "thread_attr_init", "group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6", null ],
[ "thread_attr_destroy", "group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c", null ],
[ "thread_attr_setdetachstate", "group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f", null ],
[ "thread_attr_getdetachstate", "group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4", null ],
[ "thread_cancel", "group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1", null ],
[ "thread_setcancelstate", "group__thread.html#ga98baffe08beec792f3428ae9ddad966e", null ],
[ "thread_setcanceltype", "group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c", null ],
[ "thread_testcancel", "group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671", null ]
];

View File

@ -1,207 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: thread.h Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('thread_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">thread.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="thread_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifndef THREAD_H</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define THREAD_H</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//#define EXCEPTION_POLICY</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">//#define EXIT_POLICY // DEFAULT</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__thread.html#gadca8bdcec91b8985370d904591d342b8">thread_equal</a>(pthread_t t1, pthread_t t2);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga3a0f9920a321b54c41c098d3461d3889">thread_create</a>(pthread_t* t, pthread_attr_t* attr, <span class="keywordtype">void</span> *(*thread_main)(<span class="keywordtype">void</span>*), <span class="keywordtype">void</span>* arg);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;pthread_t <a class="code" href="group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4">thread_self</a>();</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga952c63101c667d247f0923b609710c72">thread_sched_yield</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga19b16adf05364471bae2840aa564329a">thread_exit</a>(<span class="keywordtype">void</span> *retval);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga86aa7989874009c886bea9d41700e25c">thread_detach</a>(pthread_t thread);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga2b2370a45c1518f777493526b2e4f46d">thread_join</a>(pthread_t t, <span class="keywordtype">void</span>** result);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6">mutex_init</a>(pthread_mutex_t* pmtx, pthread_mutexattr_t* attr);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01">mutex_destroy</a>(pthread_mutex_t* pmtx);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39">mutex_lock</a>(pthread_mutex_t* pmtx);</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928">mutex_trylock</a>(pthread_mutex_t* pmtx);</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga95235231165ebda870afa10ba5fd6c41">mutex_unlock</a>(pthread_mutex_t* pmtx);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad">cond_init</a>(pthread_cond_t* pcvar, pthread_condattr_t* attr);</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80">cond_destroy</a>(pthread_cond_t* pcvar);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga1123643838d5174ccd41f52f4169e896">cond_wait</a>(pthread_cond_t* pcvar, pthread_mutex_t* pmtx);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2">cond_timedwait</a>(pthread_cond_t* pcvar, pthread_mutex_t* pmtx, <span class="keyword">const</span> <span class="keyword">struct</span> timespec *abstime);</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2">cond_timedwait</a>(pthread_cond_t* pcvar, pthread_mutex_t* pmtx, <span class="keywordtype">long</span> relative_time_us);</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga9624688b577fb653af7a528848cc53d5">cond_signal</a>(pthread_cond_t* pcvar);</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0">cond_broadcast</a>(pthread_cond_t* pcvar);</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c">thread_once</a>(pthread_once_t *once_control, <span class="keywordtype">void</span> (*init_routine) (<span class="keywordtype">void</span>));</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga7df1983f57dca40a86a55d215d13d42b">thread_key_create</a>(pthread_key_t *key, <span class="keywordtype">void</span> (*destr_function) (<span class="keywordtype">void</span> *));</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e">thread_key_delete</a>(pthread_key_t key);</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga3008b033f2830e79179a882a2b74c8ba">thread_setspecific</a>(pthread_key_t key, <span class="keywordtype">void</span>* pointer);</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; </div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16">thread_getspecific</a>(pthread_key_t key);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; </div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd">mutexattr_init</a>(pthread_mutexattr_t *attr);</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; </div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5">mutexattr_destroy</a>(pthread_mutexattr_t *attr);</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; </div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2">mutexattr_settype</a>(pthread_mutexattr_t *attr, <span class="keywordtype">int</span> type);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; </div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gadf741e1818d53c5b7d71cd68e161b215">mutexattr_gettype</a>(<span class="keyword">const</span> pthread_mutexattr_t *attr, <span class="keywordtype">int</span> *kind);</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gab8073c72be896ba9d711d887a5405a74">condattr_init</a>(pthread_condattr_t *attr);</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; </div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0">condattr_destroy</a>(pthread_condattr_t *attr);</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; </div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6">thread_attr_init</a>(pthread_attr_t *attr);</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c">thread_attr_destroy</a>(pthread_attr_t *attr);</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; </div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f">thread_attr_setdetachstate</a>(pthread_attr_t *attr, <span class="keywordtype">int</span> detachstate);</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; </div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4">thread_attr_getdetachstate</a>(<span class="keyword">const</span> pthread_attr_t *attr, <span class="keywordtype">int</span> *pdetachstate);</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; </div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1">thread_cancel</a>(pthread_t thread);</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; </div>
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga98baffe08beec792f3428ae9ddad966e">thread_setcancelstate</a>(<span class="keywordtype">int</span> state, <span class="keywordtype">int</span> *oldstate);</div>
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; </div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c">thread_setcanceltype</a>(<span class="keywordtype">int</span> type, <span class="keywordtype">int</span> *oldtype);</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; </div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671">thread_testcancel</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; </div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; </div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; </div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="agroup__thread_html_ga31e5eaf158d118d0e4ef7fd47368eaad"><div class="ttname"><a href="group__thread.html#ga31e5eaf158d118d0e4ef7fd47368eaad">cond_init</a></div><div class="ttdeci">void cond_init(pthread_cond_t *pcvar, pthread_condattr_t *attr)</div><div class="ttdoc">pthread_cond_init wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga3008b033f2830e79179a882a2b74c8ba"><div class="ttname"><a href="group__thread.html#ga3008b033f2830e79179a882a2b74c8ba">thread_setspecific</a></div><div class="ttdeci">void thread_setspecific(pthread_key_t key, void *pointer)</div><div class="ttdoc">pthread_setspecific wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gad663c43fbfbb4f660d48b07e110c8f80"><div class="ttname"><a href="group__thread.html#gad663c43fbfbb4f660d48b07e110c8f80">cond_destroy</a></div><div class="ttdeci">void cond_destroy(pthread_cond_t *pcvar)</div><div class="ttdoc">pthread_cond_destroy wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga7df1983f57dca40a86a55d215d13d42b"><div class="ttname"><a href="group__thread.html#ga7df1983f57dca40a86a55d215d13d42b">thread_key_create</a></div><div class="ttdeci">void thread_key_create(pthread_key_t *key, void(*destr_function)(void *))</div><div class="ttdoc">pthread_key_create wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga19b16adf05364471bae2840aa564329a"><div class="ttname"><a href="group__thread.html#ga19b16adf05364471bae2840aa564329a">thread_exit</a></div><div class="ttdeci">void thread_exit(void *retval)</div><div class="ttdoc">pthread_exit wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga07bf0e49b1f2cb99d3a2955641c676d5"><div class="ttname"><a href="group__thread.html#ga07bf0e49b1f2cb99d3a2955641c676d5">mutexattr_destroy</a></div><div class="ttdeci">void mutexattr_destroy(pthread_mutexattr_t *attr)</div><div class="ttdoc">pthread_mutexattr_destroy wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga98baffe08beec792f3428ae9ddad966e"><div class="ttname"><a href="group__thread.html#ga98baffe08beec792f3428ae9ddad966e">thread_setcancelstate</a></div><div class="ttdeci">void thread_setcancelstate(int state, int *oldstate)</div><div class="ttdoc">pthread_setcancelstate wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gaae83c8617612c1bb481fec2b382ac9c4"><div class="ttname"><a href="group__thread.html#gaae83c8617612c1bb481fec2b382ac9c4">thread_attr_getdetachstate</a></div><div class="ttdeci">void thread_attr_getdetachstate(const pthread_attr_t *attr, int *pdetachstate)</div><div class="ttdoc">pthread_attr_getdetachstate wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga65a50dfc97c087a28cb916e0f30f760e"><div class="ttname"><a href="group__thread.html#ga65a50dfc97c087a28cb916e0f30f760e">thread_key_delete</a></div><div class="ttdeci">void thread_key_delete(pthread_key_t key)</div><div class="ttdoc">pthread_key_delete wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga81bdb13d62e16ad7cb3cbd263c9a5671"><div class="ttname"><a href="group__thread.html#ga81bdb13d62e16ad7cb3cbd263c9a5671">thread_testcancel</a></div><div class="ttdeci">void thread_testcancel(void)</div><div class="ttdoc">pthread_testcancel wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gab8073c72be896ba9d711d887a5405a74"><div class="ttname"><a href="group__thread.html#gab8073c72be896ba9d711d887a5405a74">condattr_init</a></div><div class="ttdeci">void condattr_init(pthread_condattr_t *attr)</div><div class="ttdoc">pthread_condattr_init wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga2b2370a45c1518f777493526b2e4f46d"><div class="ttname"><a href="group__thread.html#ga2b2370a45c1518f777493526b2e4f46d">thread_join</a></div><div class="ttdeci">void thread_join(pthread_t t, void **result)</div><div class="ttdoc">pthread_join wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga4644f4989b30ccfb2e908017c43bd0d0"><div class="ttname"><a href="group__thread.html#ga4644f4989b30ccfb2e908017c43bd0d0">condattr_destroy</a></div><div class="ttdeci">void condattr_destroy(pthread_condattr_t *attr)</div><div class="ttdoc">pthread_condattr_destroy wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga9624688b577fb653af7a528848cc53d5"><div class="ttname"><a href="group__thread.html#ga9624688b577fb653af7a528848cc53d5">cond_signal</a></div><div class="ttdeci">void cond_signal(pthread_cond_t *pcvar)</div><div class="ttdoc">pthread_cond_signal wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gaaf2db7012069f0006e7ffaf257d8ccc6"><div class="ttname"><a href="group__thread.html#gaaf2db7012069f0006e7ffaf257d8ccc6">thread_attr_init</a></div><div class="ttdeci">void thread_attr_init(pthread_attr_t *attr)</div><div class="ttdoc">pthread_attr_init wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga3f227a19d6a339ce0aeda15775e5e6e6"><div class="ttname"><a href="group__thread.html#ga3f227a19d6a339ce0aeda15775e5e6e6">mutex_init</a></div><div class="ttdeci">void mutex_init(pthread_mutex_t *pmtx, pthread_mutexattr_t *attr)</div><div class="ttdoc">pthread_mutex_init wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga1123643838d5174ccd41f52f4169e896"><div class="ttname"><a href="group__thread.html#ga1123643838d5174ccd41f52f4169e896">cond_wait</a></div><div class="ttdeci">void cond_wait(pthread_cond_t *pcvar, pthread_mutex_t *pmtx)</div><div class="ttdoc">pthread_cond_wait wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga86aa7989874009c886bea9d41700e25c"><div class="ttname"><a href="group__thread.html#ga86aa7989874009c886bea9d41700e25c">thread_detach</a></div><div class="ttdeci">void thread_detach(pthread_t thread)</div><div class="ttdoc">pthread_detach wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga6459039ab27da7237dda2bbc866eb2d0"><div class="ttname"><a href="group__thread.html#ga6459039ab27da7237dda2bbc866eb2d0">cond_broadcast</a></div><div class="ttdeci">void cond_broadcast(pthread_cond_t *pcvar)</div><div class="ttdoc">pthread_cond_broadcast wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga9fb2733a01e8d668a2022005ea5dbebd"><div class="ttname"><a href="group__thread.html#ga9fb2733a01e8d668a2022005ea5dbebd">mutexattr_init</a></div><div class="ttdeci">void mutexattr_init(pthread_mutexattr_t *attr)</div><div class="ttdoc">pthread_mutexattr_init wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gadf741e1818d53c5b7d71cd68e161b215"><div class="ttname"><a href="group__thread.html#gadf741e1818d53c5b7d71cd68e161b215">mutexattr_gettype</a></div><div class="ttdeci">void mutexattr_gettype(const pthread_mutexattr_t *attr, int *kind)</div><div class="ttdoc">pthread_mutexattr_gettype wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gaf3a9c2c051deee01e21c75f0fa8b2e9c"><div class="ttname"><a href="group__thread.html#gaf3a9c2c051deee01e21c75f0fa8b2e9c">thread_attr_destroy</a></div><div class="ttdeci">void thread_attr_destroy(pthread_attr_t *attr)</div><div class="ttdoc">pthread_attr_destroy wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga0d207f1bb2e1d493b68a026b8650cb16"><div class="ttname"><a href="group__thread.html#ga0d207f1bb2e1d493b68a026b8650cb16">thread_getspecific</a></div><div class="ttdeci">void * thread_getspecific(pthread_key_t key)</div><div class="ttdoc">pthread_getspecific wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga5ebb836d0f83eac719f2cdd336497b01"><div class="ttname"><a href="group__thread.html#ga5ebb836d0f83eac719f2cdd336497b01">mutex_destroy</a></div><div class="ttdeci">void mutex_destroy(pthread_mutex_t *pmtx)</div><div class="ttdoc">pthread_mutex_destroy wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gad0428e8a0809704f4b3d682f26d3ef1c"><div class="ttname"><a href="group__thread.html#gad0428e8a0809704f4b3d682f26d3ef1c">thread_once</a></div><div class="ttdeci">void thread_once(pthread_once_t *once_control, void(*init_routine)(void))</div><div class="ttdoc">pthread_once wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga3a0f9920a321b54c41c098d3461d3889"><div class="ttname"><a href="group__thread.html#ga3a0f9920a321b54c41c098d3461d3889">thread_create</a></div><div class="ttdeci">void thread_create(pthread_t *t, pthread_attr_t *attr, void *(*thread_main)(void *), void *arg)</div><div class="ttdoc">pthread_create wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gab4ec114c7b59f8f4185bac648b256d0c"><div class="ttname"><a href="group__thread.html#gab4ec114c7b59f8f4185bac648b256d0c">thread_setcanceltype</a></div><div class="ttdeci">void thread_setcanceltype(int type, int *oldtype)</div><div class="ttdoc">pthread_setcanceltype wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga952c63101c667d247f0923b609710c72"><div class="ttname"><a href="group__thread.html#ga952c63101c667d247f0923b609710c72">thread_sched_yield</a></div><div class="ttdeci">void thread_sched_yield(void)</div><div class="ttdoc">sched_yield wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga601a6a9527d7d5ee2ca2870cddc4afc2"><div class="ttname"><a href="group__thread.html#ga601a6a9527d7d5ee2ca2870cddc4afc2">mutexattr_settype</a></div><div class="ttdeci">void mutexattr_settype(pthread_mutexattr_t *attr, int type)</div><div class="ttdoc">pthread_mutexattr_settype wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gadca8bdcec91b8985370d904591d342b8"><div class="ttname"><a href="group__thread.html#gadca8bdcec91b8985370d904591d342b8">thread_equal</a></div><div class="ttdeci">int thread_equal(pthread_t t1, pthread_t t2)</div><div class="ttdoc">pthread_equal wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga1b3cb53565eabe02a36e000e5244dfd1"><div class="ttname"><a href="group__thread.html#ga1b3cb53565eabe02a36e000e5244dfd1">thread_cancel</a></div><div class="ttdeci">void thread_cancel(pthread_t thread)</div><div class="ttdoc">pthread_cancel wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga606fdef53f997c231e0e1e9e54b350d4"><div class="ttname"><a href="group__thread.html#ga606fdef53f997c231e0e1e9e54b350d4">thread_self</a></div><div class="ttdeci">pthread_t thread_self()</div><div class="ttdoc">pthread_self wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_gabc82fea1785fc82aeb2f43cdd77b9b0f"><div class="ttname"><a href="group__thread.html#gabc82fea1785fc82aeb2f43cdd77b9b0f">thread_attr_setdetachstate</a></div><div class="ttdeci">void thread_attr_setdetachstate(pthread_attr_t *attr, int detachstate)</div><div class="ttdoc">pthread_attr_setdetachstate wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga87086ba0f13f6ddc479a6bc803a10c39"><div class="ttname"><a href="group__thread.html#ga87086ba0f13f6ddc479a6bc803a10c39">mutex_lock</a></div><div class="ttdeci">void mutex_lock(pthread_mutex_t *pmtx)</div><div class="ttdoc">pthread_mutex_lock wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga8cd2040836c30e4f0ea17abe4f66b8e2"><div class="ttname"><a href="group__thread.html#ga8cd2040836c30e4f0ea17abe4f66b8e2">cond_timedwait</a></div><div class="ttdeci">int cond_timedwait(pthread_cond_t *pcvar, pthread_mutex_t *pmtx, const struct timespec *abstime)</div><div class="ttdoc">pthread_cond_timedwait wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga95235231165ebda870afa10ba5fd6c41"><div class="ttname"><a href="group__thread.html#ga95235231165ebda870afa10ba5fd6c41">mutex_unlock</a></div><div class="ttdeci">void mutex_unlock(pthread_mutex_t *pmtx)</div><div class="ttdoc">pthread_mutex_unlock wrapper function.</div></div>
<div class="ttc" id="agroup__thread_html_ga8bd074884e1c92e88ca8ea0552d9a928"><div class="ttname"><a href="group__thread.html#ga8bd074884e1c92e88ca8ea0552d9a928">mutex_trylock</a></div><div class="ttdeci">int mutex_trylock(pthread_mutex_t *pmtx)</div><div class="ttdoc">pthread_mutex_trylock wrapper function.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="thread_8h.html">thread.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,208 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: utils.h File 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('utils_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">utils.h File Reference<div class="ingroups"><a class="el" href="group__utils.html">utils</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Useful common functions and macros.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;errno.h&gt;</code><br />
<code>#include &quot;<a class="el" href="dbc_8h_source.html">dbc.h</a>&quot;</code><br />
</div>
<p><a href="utils_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga3c545b669dff7d67e5ed3c58233ccf4b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b">int2str</a>(num)</td></tr>
<tr class="memdesc:ga3c545b669dff7d67e5ed3c58233ccf4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>int</code> value to a stack allocated string. <a href="group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b">More...</a><br /></td></tr>
<tr class="separator:ga3c545b669dff7d67e5ed3c58233ccf4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga858ece77e79fb78d3db0f1851bf7fe09"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09">int2nstr</a>(num, len)</td></tr>
<tr class="memdesc:ga858ece77e79fb78d3db0f1851bf7fe09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>int</code> value to a stack allocated string. <a href="group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09">More...</a><br /></td></tr>
<tr class="separator:ga858ece77e79fb78d3db0f1851bf7fe09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69373a612a7b4d264371f727217f9954"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga69373a612a7b4d264371f727217f9954">long2str</a>(num)</td></tr>
<tr class="memdesc:ga69373a612a7b4d264371f727217f9954"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>long</code> value to a stack allocated string. <a href="group__utils.html#ga69373a612a7b4d264371f727217f9954">More...</a><br /></td></tr>
<tr class="separator:ga69373a612a7b4d264371f727217f9954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50cea1f8154c7c7d2abd68f1ddb33086"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086">long2nstr</a>(num, len)</td></tr>
<tr class="memdesc:ga50cea1f8154c7c7d2abd68f1ddb33086"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>long</code> value to a stack allocated string. <a href="group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086">More...</a><br /></td></tr>
<tr class="separator:ga50cea1f8154c7c7d2abd68f1ddb33086"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga59cd66180162d107cf86a51c21d7e6f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5">perc2str</a>(percentage)</td></tr>
<tr class="memdesc:ga59cd66180162d107cf86a51c21d7e6f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>int</code> percentage to a stack allocated string. <a href="group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5">More...</a><br /></td></tr>
<tr class="separator:ga59cd66180162d107cf86a51c21d7e6f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7bffda236a079c26302722c7d155f7a5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga7bffda236a079c26302722c7d155f7a5">length_vargs_string_list</a>(first)</td></tr>
<tr class="memdesc:ga7bffda236a079c26302722c7d155f7a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the length of all strings passed as a NULL terminated variable list of arguments (vargs). <a href="group__utils.html#ga7bffda236a079c26302722c7d155f7a5">More...</a><br /></td></tr>
<tr class="separator:ga7bffda236a079c26302722c7d155f7a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfa0375f8178c737deae23ffa8d152f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gadfa0375f8178c737deae23ffa8d152f4">not_null</a>(pnt)</td></tr>
<tr class="memdesc:gadfa0375f8178c737deae23ffa8d152f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if address is not <code>NULL</code>, before its application. <a href="group__utils.html#gadfa0375f8178c737deae23ffa8d152f4">More...</a><br /></td></tr>
<tr class="separator:gadfa0375f8178c737deae23ffa8d152f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">String concatenation in stack memory</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="concat"></a></p>
</div></td></tr>
<tr class="memitem:ga22347cbf977a0300726f06257edd79d6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga22347cbf977a0300726f06257edd79d6">concat_2str</a>(str1, str2)</td></tr>
<tr class="memdesc:ga22347cbf977a0300726f06257edd79d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates two strings in the stack memory (thus it cannot be implemented in a function). <a href="group__utils.html#ga22347cbf977a0300726f06257edd79d6">More...</a><br /></td></tr>
<tr class="separator:ga22347cbf977a0300726f06257edd79d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga123e40006d54612c48c2660432dfeb23"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga123e40006d54612c48c2660432dfeb23">concat_3str</a>(str1, str2, str3)</td></tr>
<tr class="memdesc:ga123e40006d54612c48c2660432dfeb23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates three strings in the stack memory (thus it cannot be implemented in a function). <a href="group__utils.html#ga123e40006d54612c48c2660432dfeb23">More...</a><br /></td></tr>
<tr class="separator:ga123e40006d54612c48c2660432dfeb23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69037999e65cdb42d39988e0fec48af4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga69037999e65cdb42d39988e0fec48af4">concat_4str</a>(str1, str2, str3, str4)</td></tr>
<tr class="memdesc:ga69037999e65cdb42d39988e0fec48af4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates four strings in the stack memory (thus it cannot be implemented in a function). <a href="group__utils.html#ga69037999e65cdb42d39988e0fec48af4">More...</a><br /></td></tr>
<tr class="separator:ga69037999e65cdb42d39988e0fec48af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga580d1897bc7a8cef16d5a16a2373b876"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876">concat_5str</a>(str1, str2, str3, str4, str5)</td></tr>
<tr class="memdesc:ga580d1897bc7a8cef16d5a16a2373b876"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates five strings in the stack memory (thus it cannot be implemented in a function). <a href="group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876">More...</a><br /></td></tr>
<tr class="separator:ga580d1897bc7a8cef16d5a16a2373b876"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34f8c2fcee597a99c5f4c66f2119bca9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9">concat_6str</a>(str1, str2, str3, str4, str5, str6)</td></tr>
<tr class="memdesc:ga34f8c2fcee597a99c5f4c66f2119bca9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates six strings in the stack memory (thus it cannot be implemented in a function). <a href="group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9">More...</a><br /></td></tr>
<tr class="separator:ga34f8c2fcee597a99c5f4c66f2119bca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01d1ea65eb6780d91705484dd46833bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga01d1ea65eb6780d91705484dd46833bf">concat_7str</a>(str1, str2, str3, str4, str5, str6, str7)</td></tr>
<tr class="memdesc:ga01d1ea65eb6780d91705484dd46833bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates seven strings in the stack memory (thus it cannot be implemented in a function). <a href="group__utils.html#ga01d1ea65eb6780d91705484dd46833bf">More...</a><br /></td></tr>
<tr class="separator:ga01d1ea65eb6780d91705484dd46833bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gadce4d1c428f979bf1cf8e1582d2f4052"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052">mem_alloc</a> (int size)</td></tr>
<tr class="memdesc:gadce4d1c428f979bf1cf8e1582d2f4052"><td class="mdescLeft">&#160;</td><td class="mdescRight">A replacement for <code>malloc</code> function. <a href="group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052">More...</a><br /></td></tr>
<tr class="separator:gadce4d1c428f979bf1cf8e1582d2f4052"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe60e8350f3e3b07ed5002ee3449a6ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae">mem_free</a> (void *pnt)</td></tr>
<tr class="memdesc:gabe60e8350f3e3b07ed5002ee3449a6ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">A replacement for <code>free</code> function. <a href="group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae">More...</a><br /></td></tr>
<tr class="separator:gabe60e8350f3e3b07ed5002ee3449a6ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga825354891d287cc86d2b4ed1b600175a"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga825354891d287cc86d2b4ed1b600175a">string_clone</a> (char *str)</td></tr>
<tr class="memdesc:ga825354891d287cc86d2b4ed1b600175a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replicates a string. <a href="group__utils.html#ga825354891d287cc86d2b4ed1b600175a">More...</a><br /></td></tr>
<tr class="separator:ga825354891d287cc86d2b4ed1b600175a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15630ddb64e977c8243892556feedfd8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga15630ddb64e977c8243892556feedfd8">string_num_lines</a> (char *text)</td></tr>
<tr class="memdesc:ga15630ddb64e977c8243892556feedfd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of lines of a string. <a href="group__utils.html#ga15630ddb64e977c8243892556feedfd8">More...</a><br /></td></tr>
<tr class="separator:ga15630ddb64e977c8243892556feedfd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ca31b2a579b6ef7c75c41324ed5367c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c">string_num_columns</a> (char *text)</td></tr>
<tr class="memdesc:ga0ca31b2a579b6ef7c75c41324ed5367c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of columns of a string (not counting character &lsquo;&rsquo;\n'`). <a href="group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c">More...</a><br /></td></tr>
<tr class="separator:ga0ca31b2a579b6ef7c75c41324ed5367c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad643e0fcac9e59c1a171c460633e8637"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gad643e0fcac9e59c1a171c460633e8637">string_count_char</a> (char *text, char *ch)</td></tr>
<tr class="memdesc:gad643e0fcac9e59c1a171c460633e8637"><td class="mdescLeft">&#160;</td><td class="mdescRight">Counts the number of occurrences of an UTF8 character in a text. <a href="group__utils.html#gad643e0fcac9e59c1a171c460633e8637">More...</a><br /></td></tr>
<tr class="separator:gad643e0fcac9e59c1a171c460633e8637"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ec2b60d1636397119c5e0c21987f791"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga3ec2b60d1636397119c5e0c21987f791">string_starts_with</a> (char *text, char *prefix)</td></tr>
<tr class="memdesc:ga3ec2b60d1636397119c5e0c21987f791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if a string starts with a prefix. <a href="group__utils.html#ga3ec2b60d1636397119c5e0c21987f791">More...</a><br /></td></tr>
<tr class="separator:ga3ec2b60d1636397119c5e0c21987f791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c5ba308f71c323fbbd7eb9bb34285d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4">string_ends_with</a> (char *text, char *suffix)</td></tr>
<tr class="memdesc:ga1c5ba308f71c323fbbd7eb9bb34285d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if a string ends with a suffix. <a href="group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4">More...</a><br /></td></tr>
<tr class="separator:ga1c5ba308f71c323fbbd7eb9bb34285d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa23a827164f7039b9770379cbf008905"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gaa23a827164f7039b9770379cbf008905">string_concat</a> (char *res, int max_length, char *text,...)</td></tr>
<tr class="memdesc:gaa23a827164f7039b9770379cbf008905"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates a <code>NULL</code> terminated list of string arguments. <a href="group__utils.html#gaa23a827164f7039b9770379cbf008905">More...</a><br /></td></tr>
<tr class="separator:gaa23a827164f7039b9770379cbf008905"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe3e28fe49daaf3530e203c4aed1d15f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f">random_boolean</a> (int trueProb)</td></tr>
<tr class="memdesc:gabe3e28fe49daaf3530e203c4aed1d15f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a random boolean value. <a href="group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f">More...</a><br /></td></tr>
<tr class="separator:gabe3e28fe49daaf3530e203c4aed1d15f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7954e6a1b9ea073c7bc894dc5af85a9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9">random_int</a> (int min, int max)</td></tr>
<tr class="memdesc:gad7954e6a1b9ea073c7bc894dc5af85a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a random integer value within a given interval. <a href="group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9">More...</a><br /></td></tr>
<tr class="separator:gad7954e6a1b9ea073c7bc894dc5af85a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa820c93c2f719401b4b1ca54f6ea5c75"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75">random_string</a> (char **list, int *used, int length)</td></tr>
<tr class="memdesc:gaa820c93c2f719401b4b1ca54f6ea5c75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a random string from a given string list. <a href="group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75">More...</a><br /></td></tr>
<tr class="separator:gaa820c93c2f719401b4b1ca54f6ea5c75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3cffe15b7e5d10a108f1734a9640a2c7"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7">clear_console</a> ()</td></tr>
<tr class="memdesc:ga3cffe15b7e5d10a108f1734a9640a2c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the terminal. <br /></td></tr>
<tr class="separator:ga3cffe15b7e5d10a108f1734a9640a2c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad3d324aed0ec686314cb0f68dfde9853"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gad3d324aed0ec686314cb0f68dfde9853">move_cursor</a> (int line, int column)</td></tr>
<tr class="memdesc:gad3d324aed0ec686314cb0f68dfde9853"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the cursor to a position in terminal. <a href="group__utils.html#gad3d324aed0ec686314cb0f68dfde9853">More...</a><br /></td></tr>
<tr class="separator:gad3d324aed0ec686314cb0f68dfde9853"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42702791e6da9510e4f44f33d2dad8f1"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1">hide_cursor</a> ()</td></tr>
<tr class="memdesc:ga42702791e6da9510e4f44f33d2dad8f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hides the terminal cursor. <br /></td></tr>
<tr class="separator:ga42702791e6da9510e4f44f33d2dad8f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bdd62a6bef7cfd6522dc1412e162559"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559">show_cursor</a> ()</td></tr>
<tr class="memdesc:ga1bdd62a6bef7cfd6522dc1412e162559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shows the terminal cursor. <br /></td></tr>
<tr class="separator:ga1bdd62a6bef7cfd6522dc1412e162559"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8050db5b87bfdee91ee92e67b063478"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gab8050db5b87bfdee91ee92e67b063478">string_list_length</a> (char **list)</td></tr>
<tr class="memdesc:gab8050db5b87bfdee91ee92e67b063478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of elements of a <code>NULL</code> terminated list of strings. <a href="group__utils.html#gab8050db5b87bfdee91ee92e67b063478">More...</a><br /></td></tr>
<tr class="separator:gab8050db5b87bfdee91ee92e67b063478"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41163cf3a95e702f12506cd54ba3c70c"><td class="memItemLeft" align="right" valign="top">char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c">string_list_clone</a> (char **list)</td></tr>
<tr class="memdesc:ga41163cf3a95e702f12506cd54ba3c70c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replicates a <code>NULL</code> terminated list of strings. <a href="group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c">More...</a><br /></td></tr>
<tr class="separator:ga41163cf3a95e702f12506cd54ba3c70c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacf77b3345bbca43767b08ec0583fe3c"><td class="memItemLeft" align="right" valign="top">char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c">string_list_free</a> (char **list)</td></tr>
<tr class="memdesc:gaacf77b3345bbca43767b08ec0583fe3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the memory allocated to a <code>NULL</code> terminated list of strings. <a href="group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c">More...</a><br /></td></tr>
<tr class="separator:gaacf77b3345bbca43767b08ec0583fe3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga824373ca8e0b2fdfe3f5c4805cf2ab7e"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e">int2nstring</a> (char *res, int num, int len)</td></tr>
<tr class="memdesc:ga824373ca8e0b2fdfe3f5c4805cf2ab7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>int</code> value to a string. <a href="group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e">More...</a><br /></td></tr>
<tr class="separator:ga824373ca8e0b2fdfe3f5c4805cf2ab7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf6edf10cb84412b6bfb431ef87b56d6"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6">percentage2string</a> (char *res, int percentage)</td></tr>
<tr class="memdesc:gacf6edf10cb84412b6bfb431ef87b56d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts an <code>int</code> percentage to a string. <a href="group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6">More...</a><br /></td></tr>
<tr class="separator:gacf6edf10cb84412b6bfb431ef87b56d6"><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>Useful common functions and macros. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="utils_8h.html">utils.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -1,37 +0,0 @@
var utils_8h =
[
[ "concat_2str", "group__utils.html#ga22347cbf977a0300726f06257edd79d6", null ],
[ "concat_3str", "group__utils.html#ga123e40006d54612c48c2660432dfeb23", null ],
[ "concat_4str", "group__utils.html#ga69037999e65cdb42d39988e0fec48af4", null ],
[ "concat_5str", "group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876", null ],
[ "concat_6str", "group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9", null ],
[ "concat_7str", "group__utils.html#ga01d1ea65eb6780d91705484dd46833bf", null ],
[ "int2str", "group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b", null ],
[ "int2nstr", "group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09", null ],
[ "long2str", "group__utils.html#ga69373a612a7b4d264371f727217f9954", null ],
[ "long2nstr", "group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086", null ],
[ "perc2str", "group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5", null ],
[ "length_vargs_string_list", "group__utils.html#ga7bffda236a079c26302722c7d155f7a5", null ],
[ "not_null", "group__utils.html#gadfa0375f8178c737deae23ffa8d152f4", null ],
[ "mem_alloc", "group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052", null ],
[ "mem_free", "group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae", null ],
[ "string_clone", "group__utils.html#ga825354891d287cc86d2b4ed1b600175a", null ],
[ "string_num_lines", "group__utils.html#ga15630ddb64e977c8243892556feedfd8", null ],
[ "string_num_columns", "group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c", null ],
[ "string_count_char", "group__utils.html#gad643e0fcac9e59c1a171c460633e8637", null ],
[ "string_starts_with", "group__utils.html#ga3ec2b60d1636397119c5e0c21987f791", null ],
[ "string_ends_with", "group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4", null ],
[ "string_concat", "group__utils.html#gaa23a827164f7039b9770379cbf008905", null ],
[ "random_boolean", "group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f", null ],
[ "random_int", "group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9", null ],
[ "random_string", "group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75", null ],
[ "clear_console", "group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7", null ],
[ "move_cursor", "group__utils.html#gad3d324aed0ec686314cb0f68dfde9853", null ],
[ "hide_cursor", "group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1", null ],
[ "show_cursor", "group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559", null ],
[ "string_list_length", "group__utils.html#gab8050db5b87bfdee91ee92e67b063478", null ],
[ "string_list_clone", "group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c", null ],
[ "string_list_free", "group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c", null ],
[ "int2nstring", "group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e", null ],
[ "percentage2string", "group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6", null ]
];

View File

@ -1,330 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>C++ Library, mos@ua: utils.h Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">C++ Library, mos@ua
&#160;<span id="projectnumber">0.9</span>
</div>
<div id="projectbrief">cpplib-mos</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('utils_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">utils.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef UTILS_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define UTILS_H</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="dbc_8h.html">dbc.h</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="group__utils.html#ga22347cbf977a0300726f06257edd79d6"> 36</a></span>&#160;<span class="preprocessor">#define concat_2str(str1,str2) \</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> char* s1 = (str1) == NULL ? (char*)&quot;&quot; : (char*)(str1); \</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> char* s2 = (str2) == NULL ? (char*)&quot;&quot; : (char*)(str2); \</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(strlen(s1)+strlen(s2)+1); \</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"> strcpy(__res__, s1); \</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor"> strcat(__res__, s2); \</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="group__utils.html#ga123e40006d54612c48c2660432dfeb23"> 57</a></span>&#160;<span class="preprocessor">#define concat_3str(str1,str2,str3) \</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> char* s1 = (str1) == NULL ? (char*)&quot;&quot; : (char*)(str1); \</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> char* s2 = (str2) == NULL ? (char*)&quot;&quot; : (char*)(str2); \</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> char* s3 = (str3) == NULL ? (char*)&quot;&quot; : (char*)(str3); \</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(strlen(s1)+strlen(s2)+strlen(s3)+1); \</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> strcpy(__res__, s1); \</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> strcat(__res__, s2); \</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> strcat(__res__, s3); \</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="group__utils.html#ga69037999e65cdb42d39988e0fec48af4"> 81</a></span>&#160;<span class="preprocessor">#define concat_4str(str1,str2,str3,str4) \</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> char* s1 = (str1) == NULL ? (char*)&quot;&quot; : (char*)(str1); \</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> char* s2 = (str2) == NULL ? (char*)&quot;&quot; : (char*)(str2); \</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> char* s3 = (str3) == NULL ? (char*)&quot;&quot; : (char*)(str3); \</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> char* s4 = (str4) == NULL ? (char*)&quot;&quot; : (char*)(str4); \</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(strlen(s1)+strlen(s2)+strlen(s3)+strlen(s4)+1); \</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> strcpy(__res__, s1); \</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> strcat(__res__, s2); \</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> strcat(__res__, s3); \</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> strcat(__res__, s4); \</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="group__utils.html#ga580d1897bc7a8cef16d5a16a2373b876"> 108</a></span>&#160;<span class="preprocessor">#define concat_5str(str1,str2,str3,str4,str5) \</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor"> char* s1 = (str1) == NULL ? (char*)&quot;&quot; : (char*)(str1); \</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> char* s2 = (str2) == NULL ? (char*)&quot;&quot; : (char*)(str2); \</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> char* s3 = (str3) == NULL ? (char*)&quot;&quot; : (char*)(str3); \</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"> char* s4 = (str4) == NULL ? (char*)&quot;&quot; : (char*)(str4); \</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"> char* s5 = (str5) == NULL ? (char*)&quot;&quot; : (char*)(str5); \</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(strlen(s1)+strlen(s2)+strlen(s3)+strlen(s4)+strlen(s5)+1); \</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> strcpy(__res__, s1); \</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor"> strcat(__res__, s2); \</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> strcat(__res__, s3); \</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> strcat(__res__, s4); \</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="preprocessor"> strcat(__res__, s5); \</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="group__utils.html#ga34f8c2fcee597a99c5f4c66f2119bca9"> 138</a></span>&#160;<span class="preprocessor">#define concat_6str(str1,str2,str3,str4,str5,str6) \</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor"> char* s1 = (str1) == NULL ? (char*)&quot;&quot; : (char*)(str1); \</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="preprocessor"> char* s2 = (str2) == NULL ? (char*)&quot;&quot; : (char*)(str2); \</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor"> char* s3 = (str3) == NULL ? (char*)&quot;&quot; : (char*)(str3); \</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor"> char* s4 = (str4) == NULL ? (char*)&quot;&quot; : (char*)(str4); \</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor"> char* s5 = (str5) == NULL ? (char*)&quot;&quot; : (char*)(str5); \</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="preprocessor"> char* s6 = (str6) == NULL ? (char*)&quot;&quot; : (char*)(str6); \</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(strlen(s1)+strlen(s2)+strlen(s3)+strlen(s4)+strlen(s5)+strlen(s6)+1); \</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor"> strcpy(__res__, s1); \</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="preprocessor"> strcat(__res__, s2); \</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> strcat(__res__, s3); \</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"> strcat(__res__, s4); \</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor"> strcat(__res__, s5); \</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"> strcat(__res__, s6); \</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="group__utils.html#ga01d1ea65eb6780d91705484dd46833bf"> 171</a></span>&#160;<span class="preprocessor">#define concat_7str(str1,str2,str3,str4,str5,str6,str7) \</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor"> char* s1 = (str1) == NULL ? (char*)&quot;&quot; : (char*)(str1); \</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor"> char* s2 = (str2) == NULL ? (char*)&quot;&quot; : (char*)(str2); \</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor"> char* s3 = (str3) == NULL ? (char*)&quot;&quot; : (char*)(str3); \</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor"> char* s4 = (str4) == NULL ? (char*)&quot;&quot; : (char*)(str4); \</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="preprocessor"> char* s5 = (str5) == NULL ? (char*)&quot;&quot; : (char*)(str5); \</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"> char* s6 = (str6) == NULL ? (char*)&quot;&quot; : (char*)(str6); \</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor"> char* s7 = (str7) == NULL ? (char*)&quot;&quot; : (char*)(str7); \</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(strlen(s1)+strlen(s2)+strlen(s3)+strlen(s4)+strlen(s5)+strlen(s6)+strlen(s7)+1); \</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor"> strcpy(__res__, s1); \</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor"> strcat(__res__, s2); \</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor"> strcat(__res__, s3); \</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor"> strcat(__res__, s4); \</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor"> strcat(__res__, s5); \</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor"> strcat(__res__, s6); \</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor"> strcat(__res__, s7); \</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="group__utils.html#ga3c545b669dff7d67e5ed3c58233ccf4b"> 199</a></span>&#160;<span class="preprocessor">#define int2str(num) \</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(numDigits((int)num)+1); \</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor"> sprintf(__res__, &quot;%d&quot;, (int)num); \</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="group__utils.html#ga858ece77e79fb78d3db0f1851bf7fe09"> 220</a></span>&#160;<span class="preprocessor">#define int2nstr(num, len) \</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor"> require (len &gt; 0, concat_3str(&quot;invalid length value (&quot;, int2str(len), &quot;)&quot;)); \</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor"> int d = numDigits((int)num); \</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor"> if (len &gt; d) \</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor"> d = len; \</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(d+1); \</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor"> sprintf(__res__, &quot;%0*d&quot;, d, (int)num); \</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="group__utils.html#ga69373a612a7b4d264371f727217f9954"> 238</a></span>&#160;<span class="preprocessor">#define long2str(num) \</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(numDigits((long)num)+1); \</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> sprintf(__res__, &quot;%ld&quot;, (long)num); \</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="group__utils.html#ga50cea1f8154c7c7d2abd68f1ddb33086"> 259</a></span>&#160;<span class="preprocessor">#define long2nstr(num, len) \</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> require (len &gt; 0, concat_3str(&quot;invalid length value (&quot;, int2str(len), &quot;)&quot;)); \</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> int d = numDigits((int)num); \</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"> if (len &gt; d) \</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"> d = len; \</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(d+1); \</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"> sprintf(__res__, &quot;%0*ld&quot;, d, (long)num); \</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="group__utils.html#ga59cd66180162d107cf86a51c21d7e6f5"> 281</a></span>&#160;<span class="preprocessor">#define perc2str(percentage) \</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"> require (percentage &gt;= 0 &amp;&amp; percentage &lt;= 100, concat_3str(&quot;invalid percentage value (&quot;, int2str(percentage), &quot;)&quot;)); \</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"> char* __res__ = (char*)alloca(4+1); \</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> sprintf(__res__, &quot;%3d%%&quot;, (int)percentage); \</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="group__utils.html#ga7bffda236a079c26302722c7d155f7a5"> 296</a></span>&#160;<span class="preprocessor">#define length_vargs_string_list(first) \</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"> int __res__ = 0; \</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"> va_list ap; \</span></div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"> va_start(ap, first); \</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor"> char* t = first; \</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"> while (t != NULL) \</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"> __res__ += strlen(t); \</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor"> t = va_arg(ap, char*); \</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"> va_end(ap); \</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"> __res__; \</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor">#if defined __cplusplus &amp;&amp; defined EXCEPTION_POLICY</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#define not_null(pnt) \</span></div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"> if ((pnt) == NULL) \</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"> throw string_concat(NULL, 0, (char*)&quot;Null pointer error&quot;, (char*)&quot;, pointer: \&quot;&quot;, #pnt, (char*)&quot;\&quot;, function: \&quot;&quot;, __FUNCTION__, (char*)&quot;\&quot;:&quot;, int2str(__LINE__), (char*)&quot;, file: \&quot;&quot;, __FILE__, (char*)&quot;\&quot;\n&quot;, NULL); \</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"> pnt; \</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div>
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="group__utils.html#gadfa0375f8178c737deae23ffa8d152f4"> 336</a></span>&#160;<span class="preprocessor">#define not_null(pnt) \</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor"> ({ \</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"> if ((pnt) == NULL) \</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"> { \</span></div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"> fprintf (stderr, &quot;Null pointer error, pointer: \&quot;%s\&quot;, function: \&quot;%s\&quot;:%d, file: \&quot;%s\&quot;\n&quot;, \</span></div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="preprocessor"> #pnt, __FUNCTION__, __LINE__ , __FILE__); \</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"> *((int*)0) = 0; \</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"> abort (); \</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="preprocessor"> pnt; \</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> })</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052">mem_alloc</a>(<span class="keywordtype">int</span> size);</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae">mem_free</a>(<span class="keywordtype">void</span>* pnt);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="group__utils.html#ga825354891d287cc86d2b4ed1b600175a">string_clone</a>(<span class="keywordtype">char</span>* str);</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#ga15630ddb64e977c8243892556feedfd8">string_num_lines</a>(<span class="keywordtype">char</span>* text);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c">string_num_columns</a>(<span class="keywordtype">char</span>* text);</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; </div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#gad643e0fcac9e59c1a171c460633e8637">string_count_char</a>(<span class="keywordtype">char</span>* text, <span class="keywordtype">char</span>* ch);</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#ga3ec2b60d1636397119c5e0c21987f791">string_starts_with</a>(<span class="keywordtype">char</span>* text, <span class="keywordtype">char</span>* prefix);</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; </div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4">string_ends_with</a>(<span class="keywordtype">char</span>* text, <span class="keywordtype">char</span>* suffix);</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; </div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="group__utils.html#gaa23a827164f7039b9770379cbf008905">string_concat</a>(<span class="keywordtype">char</span>* res, <span class="keywordtype">int</span> max_length, <span class="keywordtype">char</span>* text, ...);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f">random_boolean</a>(<span class="keywordtype">int</span> trueProb);</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9">random_int</a>(<span class="keywordtype">int</span> min, <span class="keywordtype">int</span> max);</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; </div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75">random_string</a>(<span class="keywordtype">char</span>** list, <span class="keywordtype">int</span>* used, <span class="keywordtype">int</span> length);</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7">clear_console</a>();</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; </div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__utils.html#gad3d324aed0ec686314cb0f68dfde9853">move_cursor</a>(<span class="keywordtype">int</span> line,<span class="keywordtype">int</span> column);</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1">hide_cursor</a>();</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; </div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559">show_cursor</a>();</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; </div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__utils.html#gab8050db5b87bfdee91ee92e67b063478">string_list_length</a>(<span class="keywordtype">char</span>** list);</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; </div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keywordtype">char</span>** <a class="code" href="group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c">string_list_clone</a>(<span class="keywordtype">char</span>** list);</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; </div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="keywordtype">char</span>** <a class="code" href="group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c">string_list_free</a>(<span class="keywordtype">char</span>** list);</div>
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; </div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="keywordtype">int</span> numDigits(<span class="keywordtype">int</span> num);</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; </div>
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e">int2nstring</a>(<span class="keywordtype">char</span>* res, <span class="keywordtype">int</span> num, <span class="keywordtype">int</span> len);</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; </div>
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6">percentage2string</a>(<span class="keywordtype">char</span>* res, <span class="keywordtype">int</span> percentage);</div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; </div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; </div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="comment">/* ************************************************** */</span></div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="agroup__utils_html_gad7954e6a1b9ea073c7bc894dc5af85a9"><div class="ttname"><a href="group__utils.html#gad7954e6a1b9ea073c7bc894dc5af85a9">random_int</a></div><div class="ttdeci">int random_int(int min, int max)</div><div class="ttdoc">Generates a random integer value within a given interval.</div></div>
<div class="ttc" id="agroup__utils_html_gab8050db5b87bfdee91ee92e67b063478"><div class="ttname"><a href="group__utils.html#gab8050db5b87bfdee91ee92e67b063478">string_list_length</a></div><div class="ttdeci">int string_list_length(char **list)</div><div class="ttdoc">Number of elements of a NULL terminated list of strings.</div></div>
<div class="ttc" id="agroup__utils_html_ga825354891d287cc86d2b4ed1b600175a"><div class="ttname"><a href="group__utils.html#ga825354891d287cc86d2b4ed1b600175a">string_clone</a></div><div class="ttdeci">char * string_clone(char *str)</div><div class="ttdoc">Replicates a string.</div></div>
<div class="ttc" id="adbc_8h_html"><div class="ttname"><a href="dbc_8h.html">dbc.h</a></div><div class="ttdoc">Design-by-Contract module.</div></div>
<div class="ttc" id="agroup__utils_html_gabe60e8350f3e3b07ed5002ee3449a6ae"><div class="ttname"><a href="group__utils.html#gabe60e8350f3e3b07ed5002ee3449a6ae">mem_free</a></div><div class="ttdeci">void mem_free(void *pnt)</div><div class="ttdoc">A replacement for free function.</div></div>
<div class="ttc" id="agroup__utils_html_ga1c5ba308f71c323fbbd7eb9bb34285d4"><div class="ttname"><a href="group__utils.html#ga1c5ba308f71c323fbbd7eb9bb34285d4">string_ends_with</a></div><div class="ttdeci">int string_ends_with(char *text, char *suffix)</div><div class="ttdoc">Tests if a string ends with a suffix.</div></div>
<div class="ttc" id="agroup__utils_html_gaacf77b3345bbca43767b08ec0583fe3c"><div class="ttname"><a href="group__utils.html#gaacf77b3345bbca43767b08ec0583fe3c">string_list_free</a></div><div class="ttdeci">char ** string_list_free(char **list)</div><div class="ttdoc">Frees the memory allocated to a NULL terminated list of strings.</div></div>
<div class="ttc" id="agroup__utils_html_gad643e0fcac9e59c1a171c460633e8637"><div class="ttname"><a href="group__utils.html#gad643e0fcac9e59c1a171c460633e8637">string_count_char</a></div><div class="ttdeci">int string_count_char(char *text, char *ch)</div><div class="ttdoc">Counts the number of occurrences of an UTF8 character in a text.</div></div>
<div class="ttc" id="agroup__utils_html_ga1bdd62a6bef7cfd6522dc1412e162559"><div class="ttname"><a href="group__utils.html#ga1bdd62a6bef7cfd6522dc1412e162559">show_cursor</a></div><div class="ttdeci">void show_cursor()</div><div class="ttdoc">Shows the terminal cursor.</div></div>
<div class="ttc" id="agroup__utils_html_gacf6edf10cb84412b6bfb431ef87b56d6"><div class="ttname"><a href="group__utils.html#gacf6edf10cb84412b6bfb431ef87b56d6">percentage2string</a></div><div class="ttdeci">char * percentage2string(char *res, int percentage)</div><div class="ttdoc">Converts an int percentage to a string.</div></div>
<div class="ttc" id="agroup__utils_html_gabe3e28fe49daaf3530e203c4aed1d15f"><div class="ttname"><a href="group__utils.html#gabe3e28fe49daaf3530e203c4aed1d15f">random_boolean</a></div><div class="ttdeci">int random_boolean(int trueProb)</div><div class="ttdoc">Generates a random boolean value.</div></div>
<div class="ttc" id="agroup__utils_html_ga15630ddb64e977c8243892556feedfd8"><div class="ttname"><a href="group__utils.html#ga15630ddb64e977c8243892556feedfd8">string_num_lines</a></div><div class="ttdeci">int string_num_lines(char *text)</div><div class="ttdoc">Number of lines of a string.</div></div>
<div class="ttc" id="agroup__utils_html_ga3cffe15b7e5d10a108f1734a9640a2c7"><div class="ttname"><a href="group__utils.html#ga3cffe15b7e5d10a108f1734a9640a2c7">clear_console</a></div><div class="ttdeci">void clear_console()</div><div class="ttdoc">Clears the terminal.</div></div>
<div class="ttc" id="agroup__utils_html_ga3ec2b60d1636397119c5e0c21987f791"><div class="ttname"><a href="group__utils.html#ga3ec2b60d1636397119c5e0c21987f791">string_starts_with</a></div><div class="ttdeci">int string_starts_with(char *text, char *prefix)</div><div class="ttdoc">Tests if a string starts with a prefix.</div></div>
<div class="ttc" id="agroup__utils_html_gadce4d1c428f979bf1cf8e1582d2f4052"><div class="ttname"><a href="group__utils.html#gadce4d1c428f979bf1cf8e1582d2f4052">mem_alloc</a></div><div class="ttdeci">void * mem_alloc(int size)</div><div class="ttdoc">A replacement for malloc function.</div></div>
<div class="ttc" id="agroup__utils_html_gad3d324aed0ec686314cb0f68dfde9853"><div class="ttname"><a href="group__utils.html#gad3d324aed0ec686314cb0f68dfde9853">move_cursor</a></div><div class="ttdeci">void move_cursor(int line, int column)</div><div class="ttdoc">Moves the cursor to a position in terminal.</div></div>
<div class="ttc" id="agroup__utils_html_gaa820c93c2f719401b4b1ca54f6ea5c75"><div class="ttname"><a href="group__utils.html#gaa820c93c2f719401b4b1ca54f6ea5c75">random_string</a></div><div class="ttdeci">char * random_string(char **list, int *used, int length)</div><div class="ttdoc">Returns a random string from a given string list.</div></div>
<div class="ttc" id="agroup__utils_html_ga824373ca8e0b2fdfe3f5c4805cf2ab7e"><div class="ttname"><a href="group__utils.html#ga824373ca8e0b2fdfe3f5c4805cf2ab7e">int2nstring</a></div><div class="ttdeci">char * int2nstring(char *res, int num, int len)</div><div class="ttdoc">Converts an int value to a string.</div></div>
<div class="ttc" id="agroup__utils_html_gaa23a827164f7039b9770379cbf008905"><div class="ttname"><a href="group__utils.html#gaa23a827164f7039b9770379cbf008905">string_concat</a></div><div class="ttdeci">char * string_concat(char *res, int max_length, char *text,...)</div><div class="ttdoc">Concatenates a NULL terminated list of string arguments.</div></div>
<div class="ttc" id="agroup__utils_html_ga41163cf3a95e702f12506cd54ba3c70c"><div class="ttname"><a href="group__utils.html#ga41163cf3a95e702f12506cd54ba3c70c">string_list_clone</a></div><div class="ttdeci">char ** string_list_clone(char **list)</div><div class="ttdoc">Replicates a NULL terminated list of strings.</div></div>
<div class="ttc" id="agroup__utils_html_ga0ca31b2a579b6ef7c75c41324ed5367c"><div class="ttname"><a href="group__utils.html#ga0ca31b2a579b6ef7c75c41324ed5367c">string_num_columns</a></div><div class="ttdeci">int string_num_columns(char *text)</div><div class="ttdoc">Maximum number of columns of a string (not counting character \n'`).</div></div>
<div class="ttc" id="agroup__utils_html_ga42702791e6da9510e4f44f33d2dad8f1"><div class="ttname"><a href="group__utils.html#ga42702791e6da9510e4f44f33d2dad8f1">hide_cursor</a></div><div class="ttdeci">void hide_cursor()</div><div class="ttdoc">Hides the terminal cursor.</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="utils_8h.html">utils.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>