• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# POSIX Support<a name="EN-US_TOPIC_0000001078589734"></a>
2
3-   [Basic Concepts](#section1757915134139)
4-   [Development Guidelines](#section1573664211318)
5    -   [Available APIs](#section10429150121317)
6    -   [Important Notes](#section109174418147)
7    -   [Development Example](#section206149278155)
8
9
10## Basic Concepts<a name="section1757915134139"></a>
11
12The OpenHarmony kernel uses the  **musl libc**  library and self-developed APIs and supports the Portable Operating System Interface \(POSIX\). You can develop components and applications working on the kernel based on the POSIX.
13
14## Development Guidelines<a name="section1573664211318"></a>
15
16### Available APIs<a name="section10429150121317"></a>
17
18**Table  1**  Available APIs
19
20<a name="table895334620813"></a>
21<table><thead align="left"><tr id="row395474617817"><th class="cellrowborder" valign="top" width="7.12%" id="mcps1.2.5.1.1"><p id="p6353032359"><a name="p6353032359"></a><a name="p6353032359"></a>Type</p>
22</th>
23<th class="cellrowborder" valign="top" width="17.150000000000002%" id="mcps1.2.5.1.2"><p id="p8806202894616"><a name="p8806202894616"></a><a name="p8806202894616"></a>Header File</p>
24</th>
25<th class="cellrowborder" valign="top" width="52.27%" id="mcps1.2.5.1.3"><p id="p195434611811"><a name="p195434611811"></a><a name="p195434611811"></a>API</p>
26</th>
27<th class="cellrowborder" valign="top" width="23.46%" id="mcps1.2.5.1.4"><p id="p8954346084"><a name="p8954346084"></a><a name="p8954346084"></a>Description</p>
28</th>
29</tr>
30</thead>
31<tbody><tr id="row8954646388"><td class="cellrowborder" rowspan="27" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p109544461689"><a name="p109544461689"></a><a name="p109544461689"></a>process</p>
32</td>
33<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p12806628134615"><a name="p12806628134615"></a><a name="p12806628134615"></a>#include &lt;stdlib.h&gt;</p>
34</td>
35<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p39542461183"><a name="p39542461183"></a><a name="p39542461183"></a>void abort(void);</p>
36</td>
37<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p1795410468811"><a name="p1795410468811"></a><a name="p1795410468811"></a>Terminates the execution of a thread.</p>
38</td>
39</tr>
40<tr id="row7559152918428"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p15806112816462"><a name="p15806112816462"></a><a name="p15806112816462"></a>#include &lt;assert.h&gt;</p>
41</td>
42<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p14560429154220"><a name="p14560429154220"></a><a name="p14560429154220"></a>void assert(scalar expression);</p>
43</td>
44<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p14560162914424"><a name="p14560162914424"></a><a name="p14560162914424"></a>Terminates the thread if the assertion is false.</p>
45</td>
46</tr>
47<tr id="row113215211438"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1980612289469"><a name="p1980612289469"></a><a name="p1980612289469"></a>#include &lt;pthread.h&gt;</p>
48</td>
49<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p21321621194313"><a name="p21321621194313"></a><a name="p21321621194313"></a>int pthread_cond_destroy(pthread_cond_t *cond);</p>
50</td>
51<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p161321721154314"><a name="p161321721154314"></a><a name="p161321721154314"></a>Destroys a condition variable.</p>
52</td>
53</tr>
54<tr id="row313302164314"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p128061128114611"><a name="p128061128114611"></a><a name="p128061128114611"></a>#include &lt;pthread.h&gt;</p>
55</td>
56<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p10133172144317"><a name="p10133172144317"></a><a name="p10133172144317"></a>int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);</p>
57</td>
58<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p513392104319"><a name="p513392104319"></a><a name="p513392104319"></a>Initializes a condition variable.</p>
59</td>
60</tr>
61<tr id="row201421029104316"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p480762815462"><a name="p480762815462"></a><a name="p480762815462"></a>#include &lt;pthread.h&gt;</p>
62</td>
63<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1914212964318"><a name="p1914212964318"></a><a name="p1914212964318"></a>int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime);</p>
64</td>
65<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p14142102984312"><a name="p14142102984312"></a><a name="p14142102984312"></a>Waits for the condition.</p>
66</td>
67</tr>
68<tr id="row91431829124311"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p58071528154619"><a name="p58071528154619"></a><a name="p58071528154619"></a>#include &lt;pthread.h&gt;</p>
69</td>
70<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p201431529184319"><a name="p201431529184319"></a><a name="p201431529184319"></a>int pthread_condattr_init(pthread_condattr_t *attr);</p>
71</td>
72<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p5143162974313"><a name="p5143162974313"></a><a name="p5143162974313"></a>Initializes a condition variable attribute object.</p>
73</td>
74</tr>
75<tr id="row6659429144818"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p18659162910484"><a name="p18659162910484"></a><a name="p18659162910484"></a>#include &lt;pthread.h&gt;</p>
76</td>
77<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p15659182911485"><a name="p15659182911485"></a><a name="p15659182911485"></a>int pthread_mutex_unlock(pthread_mutex_t *mutex);</p>
78</td>
79<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p465922994813"><a name="p465922994813"></a><a name="p465922994813"></a>Unlocks a mutex.</p>
80</td>
81</tr>
82<tr id="row5935041188"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p17616642312"><a name="p17616642312"></a><a name="p17616642312"></a>#include &lt;pthread.h&gt;</p>
83</td>
84<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p679871717159"><a name="p679871717159"></a><a name="p679871717159"></a>int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);</p>
85</td>
86<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p13678824091"><a name="p13678824091"></a><a name="p13678824091"></a>Creates a thread.</p>
87</td>
88</tr>
89<tr id="row093624161818"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p442110115321"><a name="p442110115321"></a><a name="p442110115321"></a>#include &lt;pthread.h&gt;</p>
90</td>
91<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p747015012202"><a name="p747015012202"></a><a name="p747015012202"></a>int pthread_join(pthread_t thread, void **retval);</p>
92</td>
93<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p136799249910"><a name="p136799249910"></a><a name="p136799249910"></a>Waits for a thread to terminate.</p>
94</td>
95</tr>
96<tr id="row1993684181816"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p66791224496"><a name="p66791224496"></a><a name="p66791224496"></a>#include &lt;pthread.h&gt;</p>
97</td>
98<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p967910241794"><a name="p967910241794"></a><a name="p967910241794"></a>pthread_t pthread_self(void);</p>
99</td>
100<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p196794241196"><a name="p196794241196"></a><a name="p196794241196"></a>Obtains the ID of the current thread.</p>
101</td>
102</tr>
103<tr id="row1693664161817"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p767910241690"><a name="p767910241690"></a><a name="p767910241690"></a>#include &lt;pthread.h&gt;</p>
104</td>
105<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p134701550192014"><a name="p134701550192014"></a><a name="p134701550192014"></a>int pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *param);</p>
106</td>
107<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1567914241698"><a name="p1567914241698"></a><a name="p1567914241698"></a>Obtains the scheduling policy and parameters of a thread.</p>
108</td>
109</tr>
110<tr id="row3936146182"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p192131110122014"><a name="p192131110122014"></a><a name="p192131110122014"></a>#include &lt;pthread.h&gt;</p>
111</td>
112<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p767922414914"><a name="p767922414914"></a><a name="p767922414914"></a>int pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *param);</p>
113</td>
114<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1980015172155"><a name="p1980015172155"></a><a name="p1980015172155"></a>Sets a scheduling policy and parameters for a thread.</p>
115</td>
116</tr>
117<tr id="row1793684141816"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p5509413122114"><a name="p5509413122114"></a><a name="p5509413122114"></a>#include &lt;pthread.h&gt;</p>
118</td>
119<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1319921111419"><a name="p1319921111419"></a><a name="p1319921111419"></a>int pthread_mutex_init(pthread_mutex_t *__restrict m, const pthread_mutexattr_t *__restrict a);</p>
120</td>
121<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1199313147"><a name="p1199313147"></a><a name="p1199313147"></a>Initializes a mutex.</p>
122</td>
123</tr>
124<tr id="row2093718401811"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p719910161417"><a name="p719910161417"></a><a name="p719910161417"></a>#include &lt;pthread.h&gt;</p>
125</td>
126<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p7199417147"><a name="p7199417147"></a><a name="p7199417147"></a>int pthread_mutex_lock(pthread_mutex_t *m);</p>
127</td>
128<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p111991415144"><a name="p111991415144"></a><a name="p111991415144"></a>Locks a mutex.</p>
129</td>
130</tr>
131<tr id="row09371421820"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p172001012149"><a name="p172001012149"></a><a name="p172001012149"></a>#include &lt;pthread.h&gt;</p>
132</td>
133<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p122003120145"><a name="p122003120145"></a><a name="p122003120145"></a>int pthread_mutex_trylock(pthread_mutex_t *m);</p>
134</td>
135<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1920021121417"><a name="p1920021121417"></a><a name="p1920021121417"></a>Attempts to lock a mutex.</p>
136</td>
137</tr>
138<tr id="row2937346182"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1983818513394"><a name="p1983818513394"></a><a name="p1983818513394"></a>#include &lt;pthread.h&gt;</p>
139</td>
140<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p18471150172017"><a name="p18471150172017"></a><a name="p18471150172017"></a>int pthread_mutex_destroy(pthread_mutex_t *m);</p>
141</td>
142<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p720013117146"><a name="p720013117146"></a><a name="p720013117146"></a>Destroys a mutex.</p>
143</td>
144</tr>
145<tr id="row20937849181"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p202000114144"><a name="p202000114144"></a><a name="p202000114144"></a>#include &lt;pthread.h&gt;</p>
146</td>
147<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p20471950112011"><a name="p20471950112011"></a><a name="p20471950112011"></a>int pthread_attr_init(pthread_attr_t *attr);</p>
148</td>
149<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1020018101412"><a name="p1020018101412"></a><a name="p1020018101412"></a>Initializes a thread attribute object.</p>
150</td>
151</tr>
152<tr id="row1693844131816"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p6200116141"><a name="p6200116141"></a><a name="p6200116141"></a>#include &lt;pthread.h&gt;</p>
153</td>
154<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p2471135014201"><a name="p2471135014201"></a><a name="p2471135014201"></a>int pthread_attr_destroy(pthread_attr_t *attr);</p>
155</td>
156<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p72003112144"><a name="p72003112144"></a><a name="p72003112144"></a>Destroys a thread attribute object.</p>
157</td>
158</tr>
159<tr id="row109389413181"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p3200141201420"><a name="p3200141201420"></a><a name="p3200141201420"></a>#include &lt;pthread.h&gt;</p>
160</td>
161<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1947155012207"><a name="p1947155012207"></a><a name="p1947155012207"></a>int pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize);</p>
162</td>
163<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1620019116144"><a name="p1620019116144"></a><a name="p1620019116144"></a>Obtains the stack size of a thread attribute object.</p>
164</td>
165</tr>
166<tr id="row960061102113"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1220112113141"><a name="p1220112113141"></a><a name="p1220112113141"></a>#include &lt;pthread.h&gt;</p>
167</td>
168<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p4452036191511"><a name="p4452036191511"></a><a name="p4452036191511"></a>int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);</p>
169</td>
170<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p44515367157"><a name="p44515367157"></a><a name="p44515367157"></a>Sets the stack size for a thread attribute object.</p>
171</td>
172</tr>
173<tr id="row860031182111"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p20162113832818"><a name="p20162113832818"></a><a name="p20162113832818"></a>#include &lt;pthread.h&gt;</p>
174</td>
175<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p10472185032013"><a name="p10472185032013"></a><a name="p10472185032013"></a>int pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param);</p>
176</td>
177<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p54633611154"><a name="p54633611154"></a><a name="p54633611154"></a>Obtains scheduling parameter attributes of a thread attribute object.</p>
178</td>
179</tr>
180<tr id="row10601911214"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p5959165153018"><a name="p5959165153018"></a><a name="p5959165153018"></a>#include &lt;pthread.h&gt;</p>
181</td>
182<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p520117191415"><a name="p520117191415"></a><a name="p520117191415"></a>int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);</p>
183</td>
184<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1746636141515"><a name="p1746636141515"></a><a name="p1746636141515"></a>Sets scheduling parameter attributes for a thread attribute object.</p>
185</td>
186</tr>
187<tr id="row4601414219"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p2040884313384"><a name="p2040884313384"></a><a name="p2040884313384"></a>#include &lt;pthread.h&gt;</p>
188</td>
189<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p18472155092016"><a name="p18472155092016"></a><a name="p18472155092016"></a>int pthread_getname_np(pthread_t pthread, char *name, size_t len);</p>
190</td>
191<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1120131121416"><a name="p1120131121416"></a><a name="p1120131121416"></a>Obtains the name of a thread.</p>
192</td>
193</tr>
194<tr id="row18601151112111"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1020151131420"><a name="p1020151131420"></a><a name="p1020151131420"></a>#include &lt;pthread.h&gt;</p>
195</td>
196<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p947235062010"><a name="p947235062010"></a><a name="p947235062010"></a>int pthread_setname_np(pthread_t pthread, const char *name);</p>
197</td>
198<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p7201217144"><a name="p7201217144"></a><a name="p7201217144"></a>Set the thread name.</p>
199</td>
200</tr>
201<tr id="row1960111113212"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1997610185414"><a name="p1997610185414"></a><a name="p1997610185414"></a>#include &lt;pthread.h&gt;</p>
202</td>
203<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p18021017141517"><a name="p18021017141517"></a><a name="p18021017141517"></a>int pthread_cond_broadcast(pthread_cond_t *c);</p>
204</td>
205<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1720111112148"><a name="p1720111112148"></a><a name="p1720111112148"></a>Unblocks the threads that are currently blocked on the condition variable.</p>
206</td>
207</tr>
208<tr id="row11602121162114"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p122021518147"><a name="p122021518147"></a><a name="p122021518147"></a>#include &lt;pthread.h&gt;</p>
209</td>
210<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1080291711510"><a name="p1080291711510"></a><a name="p1080291711510"></a>int pthread_cond_signal(pthread_cond_t *c);</p>
211</td>
212<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p22026131420"><a name="p22026131420"></a><a name="p22026131420"></a>Unblocks a thread.</p>
213</td>
214</tr>
215<tr id="row86020111212"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p11202141121410"><a name="p11202141121410"></a><a name="p11202141121410"></a>#include &lt;pthread.h&gt;</p>
216</td>
217<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p2183310194219"><a name="p2183310194219"></a><a name="p2183310194219"></a>int pthread_cond_wait(pthread_cond_t *__restrict c, pthread_mutex_t *__restrict m);</p>
218</td>
219<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p15202412148"><a name="p15202412148"></a><a name="p15202412148"></a>Waits for the condition.</p>
220</td>
221</tr>
222<tr id="row183901254784"><td class="cellrowborder" rowspan="17" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p8390105412815"><a name="p8390105412815"></a><a name="p8390105412815"></a>fs</p>
223<p id="p16899101444012"><a name="p16899101444012"></a><a name="p16899101444012"></a></p>
224</td>
225<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p8807172824612"><a name="p8807172824612"></a><a name="p8807172824612"></a>#include &lt;libgen.h&gt;</p>
226</td>
227<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p113904541182"><a name="p113904541182"></a><a name="p113904541182"></a>char *dirname(char *path);</p>
228</td>
229<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p183909541887"><a name="p183909541887"></a><a name="p183909541887"></a>Obtains the folder name.</p>
230</td>
231</tr>
232<tr id="row55791630195011"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p18579330115010"><a name="p18579330115010"></a><a name="p18579330115010"></a>#include &lt;dirent.h&gt;</p>
233</td>
234<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p13579330195016"><a name="p13579330195016"></a><a name="p13579330195016"></a>struct dirent *readdir(DIR *dirp);</p>
235</td>
236<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p14579163095016"><a name="p14579163095016"></a><a name="p14579163095016"></a>Reads a directory.</p>
237</td>
238</tr>
239<tr id="row10746104216507"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1033312208571"><a name="p1033312208571"></a><a name="p1033312208571"></a>#include &lt;sys/stat.h&gt;</p>
240</td>
241<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1674794285011"><a name="p1674794285011"></a><a name="p1674794285011"></a>int stat(const char *restrict path, struct stat *restrict buf);</p>
242</td>
243<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p07471542115011"><a name="p07471542115011"></a><a name="p07471542115011"></a>Obtains file information.</p>
244</td>
245</tr>
246<tr id="row4747124210502"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p12386142918575"><a name="p12386142918575"></a><a name="p12386142918575"></a>#include &lt;unistd.h&gt;</p>
247</td>
248<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p6747142135017"><a name="p6747142135017"></a><a name="p6747142135017"></a>int unlink(const char *pathname);</p>
249</td>
250<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p5747174219504"><a name="p5747174219504"></a><a name="p5747174219504"></a>Deletes a file.</p>
251</td>
252</tr>
253<tr id="row117941848155011"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p157951148105019"><a name="p157951148105019"></a><a name="p157951148105019"></a>#include &lt;fcntl.h</p>
254</td>
255<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1086884114190"><a name="p1086884114190"></a><a name="p1086884114190"></a>int open(const char *path, int oflags, ...);</p>
256</td>
257<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p16795164855018"><a name="p16795164855018"></a><a name="p16795164855018"></a>Opens a file. If the file does not exist, create a file and open it.</p>
258</td>
259</tr>
260<tr id="row2332345111914"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p6602174417217"><a name="p6602174417217"></a><a name="p6602174417217"></a>#include &lt;nistd.h&gt;</p>
261</td>
262<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p8499118131118"><a name="p8499118131118"></a><a name="p8499118131118"></a>int close(int fd);</p>
263</td>
264<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1256220291104"><a name="p1256220291104"></a><a name="p1256220291104"></a>Closes a file.</p>
265</td>
266</tr>
267<tr id="row106411620191012"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p147014220289"><a name="p147014220289"></a><a name="p147014220289"></a>#include &lt;stdio.h&gt;</p>
268</td>
269<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p711391141911"><a name="p711391141911"></a><a name="p711391141911"></a>int rename(const char *oldpath, const char *newpath);</p>
270</td>
271<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1764122081011"><a name="p1764122081011"></a><a name="p1764122081011"></a>Rename the specified file.</p>
272</td>
273</tr>
274<tr id="row164172013105"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1763192712281"><a name="p1763192712281"></a><a name="p1763192712281"></a>#include &lt;dirent.h&gt;</p>
275</td>
276<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p6608143134518"><a name="p6608143134518"></a><a name="p6608143134518"></a>DIR  *opendir(const char *dirname);</p>
277</td>
278<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p964218202105"><a name="p964218202105"></a><a name="p964218202105"></a>Opens the specified directory.</p>
279</td>
280</tr>
281<tr id="row1964282012105"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p53239286286"><a name="p53239286286"></a><a name="p53239286286"></a>#include &lt;dirent.h&gt;</p>
282</td>
283<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p15642820181014"><a name="p15642820181014"></a><a name="p15642820181014"></a>int closedir(DIR *dir);</p>
284</td>
285<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p166421201108"><a name="p166421201108"></a><a name="p166421201108"></a>Closes the specified directory.</p>
286</td>
287</tr>
288<tr id="row9642202001013"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1290215285287"><a name="p1290215285287"></a><a name="p1290215285287"></a>#include &lt;sys/mount.h&gt;</p>
289</td>
290<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1035514388516"><a name="p1035514388516"></a><a name="p1035514388516"></a>int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);</p>
291</td>
292<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1364242013103"><a name="p1364242013103"></a><a name="p1364242013103"></a>Mounts a file system.</p>
293</td>
294</tr>
295<tr id="row364262011011"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1184802912286"><a name="p1184802912286"></a><a name="p1184802912286"></a>#include &lt;sys/mount.h&gt;</p>
296</td>
297<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1935603885120"><a name="p1935603885120"></a><a name="p1935603885120"></a>int umount(const char *target);</p>
298</td>
299<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p26421520191017"><a name="p26421520191017"></a><a name="p26421520191017"></a>Unmounts a file system.</p>
300</td>
301</tr>
302<tr id="row1064252019101"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p12458131122813"><a name="p12458131122813"></a><a name="p12458131122813"></a>#include &lt;sys/mount.h&gt;</p>
303</td>
304<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p95296218264"><a name="p95296218264"></a><a name="p95296218264"></a>int umount2(const char *target, int flag);</p>
305</td>
306<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p19642420121015"><a name="p19642420121015"></a><a name="p19642420121015"></a>Unmounts a file system.</p>
307</td>
308</tr>
309<tr id="row1450111232125"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1098616311287"><a name="p1098616311287"></a><a name="p1098616311287"></a>#include &lt;sys/stat.h&gt;</p>
310</td>
311<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p2011771842220"><a name="p2011771842220"></a><a name="p2011771842220"></a>int fsync(int fd);</p>
312</td>
313<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p250115236125"><a name="p250115236125"></a><a name="p250115236125"></a>Synchronizes the files associated with a specified file descriptor to a storage device.</p>
314</td>
315</tr>
316<tr id="row115013239123"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p3929143214288"><a name="p3929143214288"></a><a name="p3929143214288"></a>#include &lt;sys/stat.h&gt;</p>
317</td>
318<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p295910239426"><a name="p295910239426"></a><a name="p295910239426"></a>int mkdir(const char *pathname, mode_t mode);</p>
319</td>
320<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p19966195644317"><a name="p19966195644317"></a><a name="p19966195644317"></a>Creates a directory.</p>
321</td>
322</tr>
323<tr id="row105021723101218"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p4792034112819"><a name="p4792034112819"></a><a name="p4792034112819"></a>#include &lt;unistd.h&gt;</p>
324</td>
325<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1118181872214"><a name="p1118181872214"></a><a name="p1118181872214"></a>int rmdir(const char *path);</p>
326</td>
327<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1350214237122"><a name="p1350214237122"></a><a name="p1350214237122"></a>Deletes a directory.</p>
328</td>
329</tr>
330<tr id="row125023236120"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p15620934182817"><a name="p15620934182817"></a><a name="p15620934182817"></a>#include &lt;sys/stat.h&gt;</p>
331</td>
332<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p18958172310427"><a name="p18958172310427"></a><a name="p18958172310427"></a>int fstat(int fd, struct stat *buf);</p>
333</td>
334<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p550222319127"><a name="p550222319127"></a><a name="p550222319127"></a>Obtains file status information.</p>
335</td>
336</tr>
337<tr id="row789821444016"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p10899514184010"><a name="p10899514184010"></a><a name="p10899514184010"></a>#include &lt;sys/statfs.h&gt;</p>
338</td>
339<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p82761152115811"><a name="p82761152115811"></a><a name="p82761152115811"></a>int statfs(const char *path, struct statfs *buf);</p>
340</td>
341<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1489913149409"><a name="p1489913149409"></a><a name="p1489913149409"></a>Obtains the file system information of a file in the specified path.</p>
342</td>
343</tr>
344<tr id="row17474428506"><td class="cellrowborder" rowspan="16" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p186578497613"><a name="p186578497613"></a><a name="p186578497613"></a>time</p>
345</td>
346<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p117487429505"><a name="p117487429505"></a><a name="p117487429505"></a>#include &lt;sys/time.h&gt;</p>
347</td>
348<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p3748242125014"><a name="p3748242125014"></a><a name="p3748242125014"></a>int gettimeofday(struct timeval *tv, struct timezone *tz);</p>
349</td>
350<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p12748242195017"><a name="p12748242195017"></a><a name="p12748242195017"></a>Obtains the time. Time zone is not supported. The return value of <strong id="b854143112452"><a name="b854143112452"></a><a name="b854143112452"></a>tz</strong> is empty.</p>
351</td>
352</tr>
353<tr id="row10748134275014"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p12748134215012"><a name="p12748134215012"></a><a name="p12748134215012"></a>#include &lt;time.h&gt;</p>
354</td>
355<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1574812422505"><a name="p1574812422505"></a><a name="p1574812422505"></a>struct tm *gmtime(const time_t *timep);</p>
356</td>
357<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p67488425509"><a name="p67488425509"></a><a name="p67488425509"></a>Converts a date and time to broken-down time or ASCII.</p>
358</td>
359</tr>
360<tr id="row1674894212507"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1374974225010"><a name="p1374974225010"></a><a name="p1374974225010"></a>#include &lt;time.h&gt;</p>
361</td>
362<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p147499420501"><a name="p147499420501"></a><a name="p147499420501"></a>struct tm *localtime(const time_t *timep);</p>
363</td>
364<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1574918423504"><a name="p1574918423504"></a><a name="p1574918423504"></a>Obtains the time.</p>
365</td>
366</tr>
367<tr id="row574915422505"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p19749184214507"><a name="p19749184214507"></a><a name="p19749184214507"></a>#include &lt;time.h&gt;</p>
368</td>
369<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p474994245016"><a name="p474994245016"></a><a name="p474994245016"></a>struct tm *localtime_r(const time_t *timep, struct tm *result);</p>
370</td>
371<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p77492042135013"><a name="p77492042135013"></a><a name="p77492042135013"></a>Obtains the time.</p>
372</td>
373</tr>
374<tr id="row488185917816"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p980716286465"><a name="p980716286465"></a><a name="p980716286465"></a>#include &lt;time.h&gt;</p>
375</td>
376<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p18825917816"><a name="p18825917816"></a><a name="p18825917816"></a>time_t mktime(struct tm *tm);</p>
377</td>
378<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1988125916818"><a name="p1988125916818"></a><a name="p1988125916818"></a>Converts a date and time to broken-down time or ASCII.</p>
379</td>
380</tr>
381<tr id="row1012515199719"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p912513191777"><a name="p912513191777"></a><a name="p912513191777"></a>#include &lt;time.h&gt;</p>
382</td>
383<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p8126219872"><a name="p8126219872"></a><a name="p8126219872"></a>size_t strftime(char *s, size_t max, const char *format,const struct tm *tm);</p>
384</td>
385<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p712617191776"><a name="p712617191776"></a><a name="p712617191776"></a>Formats the date and time string.</p>
386</td>
387</tr>
388<tr id="row1712610196714"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p2126121910710"><a name="p2126121910710"></a><a name="p2126121910710"></a>#include &lt;time.h&gt;</p>
389</td>
390<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p13126419976"><a name="p13126419976"></a><a name="p13126419976"></a>time_t time(time_t *tloc);</p>
391</td>
392<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p21261919971"><a name="p21261919971"></a><a name="p21261919971"></a>Obtains the calendar time.</p>
393</td>
394</tr>
395<tr id="row81261319577"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1112610194718"><a name="p1112610194718"></a><a name="p1112610194718"></a>#include &lt;sys/times.h&gt;</p>
396</td>
397<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p171271919878"><a name="p171271919878"></a><a name="p171271919878"></a>clock_t times(struct tms *buf);</p>
398</td>
399<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p61272196713"><a name="p61272196713"></a><a name="p61272196713"></a>Obtains the thread time.</p>
400</td>
401</tr>
402<tr id="row1512715191575"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p312714191673"><a name="p312714191673"></a><a name="p312714191673"></a>#include &lt;unistd.h&gt;</p>
403</td>
404<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p812751918716"><a name="p812751918716"></a><a name="p812751918716"></a>int usleep(useconds_t usec);</p>
405</td>
406<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p31271119773"><a name="p31271119773"></a><a name="p31271119773"></a>Goes to hibernation (in μs).</p>
407</td>
408</tr>
409<tr id="row6399946121118"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p162424341317"><a name="p162424341317"></a><a name="p162424341317"></a>#include &lt;time.h&gt;</p>
410</td>
411<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p3262105015216"><a name="p3262105015216"></a><a name="p3262105015216"></a>int nanosleep(const struct timespec *tspec1, struct timespec *tspec2);</p>
412</td>
413<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p4399174611118"><a name="p4399174611118"></a><a name="p4399174611118"></a>Pauses the calling thread till the specified time.</p>
414</td>
415</tr>
416<tr id="row4399114691119"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p9738125731717"><a name="p9738125731717"></a><a name="p9738125731717"></a>#include &lt;time.h&gt;</p>
417</td>
418<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p940024611116"><a name="p940024611116"></a><a name="p940024611116"></a>int clock_gettime(clockid_t id, struct timespec *tspec);</p>
419</td>
420<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p140054661114"><a name="p140054661114"></a><a name="p140054661114"></a>Obtains the clock time.</p>
421</td>
422</tr>
423<tr id="row640044618115"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1942222152413"><a name="p1942222152413"></a><a name="p1942222152413"></a>#include &lt;time.h&gt;</p>
424</td>
425<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p4262185092111"><a name="p4262185092111"></a><a name="p4262185092111"></a>int timer_create(clockid_t id, struct sigevent *__restrict evp, timer_t *__restrict t);</p>
426</td>
427<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p10400134620113"><a name="p10400134620113"></a><a name="p10400134620113"></a>Creates a timer for a thread.</p>
428</td>
429</tr>
430<tr id="row19400184614116"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p94001446121110"><a name="p94001446121110"></a><a name="p94001446121110"></a>#include &lt;time.h&gt;</p>
431</td>
432<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1626265012115"><a name="p1626265012115"></a><a name="p1626265012115"></a>int timer_delete(timer_t t);</p>
433</td>
434<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p840054610114"><a name="p840054610114"></a><a name="p840054610114"></a>Deletes a thread timer.</p>
435</td>
436</tr>
437<tr id="row18400124618117"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p275111375343"><a name="p275111375343"></a><a name="p275111375343"></a>#include &lt;time.h&gt;</p>
438</td>
439<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p626315017218"><a name="p626315017218"></a><a name="p626315017218"></a>int timer_settime(timer_t t, int flags, const struct itimerspec *__restrict val, struct itimerspec *__restrict old);</p>
440</td>
441<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p17400184616110"><a name="p17400184616110"></a><a name="p17400184616110"></a>Sets a timer for a thread.</p>
442</td>
443</tr>
444<tr id="row640094661119"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p4779162844815"><a name="p4779162844815"></a><a name="p4779162844815"></a>#include &lt;time.h&gt;</p>
445</td>
446<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p39151240396"><a name="p39151240396"></a><a name="p39151240396"></a>time_t time (time_t *t);</p>
447</td>
448<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p0400114651120"><a name="p0400114651120"></a><a name="p0400114651120"></a>Obtains the time.</p>
449</td>
450</tr>
451<tr id="row1440064661116"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1789411519255"><a name="p1789411519255"></a><a name="p1789411519255"></a>#include &lt;time.h&gt;</p>
452</td>
453<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p158947156251"><a name="p158947156251"></a><a name="p158947156251"></a>char *strptime(const char *s, const char *format, struct tm *tm);</p>
454</td>
455<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1489561511256"><a name="p1489561511256"></a><a name="p1489561511256"></a>Converts the time string into the time tm structure.</p>
456</td>
457</tr>
458<tr id="row5127111911713"><td class="cellrowborder" rowspan="36" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p0660049161215"><a name="p0660049161215"></a><a name="p0660049161215"></a>util</p>
459</td>
460<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p1212761918713"><a name="p1212761918713"></a><a name="p1212761918713"></a>#include &lt;stdlib.h&gt;</p>
461</td>
462<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p141276191079"><a name="p141276191079"></a><a name="p141276191079"></a>int atoi(const char *nptr);</p>
463</td>
464<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p1312720191774"><a name="p1312720191774"></a><a name="p1312720191774"></a>Converts the character string into an integer (int).</p>
465</td>
466</tr>
467<tr id="row1440314213511"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1680772884613"><a name="p1680772884613"></a><a name="p1680772884613"></a>#include &lt;stdlib.h&gt;</p>
468</td>
469<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p740316421856"><a name="p740316421856"></a><a name="p740316421856"></a>long atol(const char *nptr);</p>
470</td>
471<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p17403642554"><a name="p17403642554"></a><a name="p17403642554"></a>Converts the character string into an integer (long).</p>
472</td>
473</tr>
474<tr id="row1796575911219"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p39662597128"><a name="p39662597128"></a><a name="p39662597128"></a>#include &lt;stdlib.h&gt;</p>
475</td>
476<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p696665919120"><a name="p696665919120"></a><a name="p696665919120"></a>long long atoll(const char *nptr);</p>
477</td>
478<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p13966125916120"><a name="p13966125916120"></a><a name="p13966125916120"></a>Converts the character string into an integer (long long).</p>
479</td>
480</tr>
481<tr id="row1096645981217"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p179664599122"><a name="p179664599122"></a><a name="p179664599122"></a>#include &lt;ctype.h&gt;</p>
482</td>
483<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1896625914128"><a name="p1896625914128"></a><a name="p1896625914128"></a>int isalnum(int c);</p>
484</td>
485<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1966145911128"><a name="p1966145911128"></a><a name="p1966145911128"></a>Checks for alphanumeric characters.</p>
486</td>
487</tr>
488<tr id="row796619598123"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p15967759131219"><a name="p15967759131219"></a><a name="p15967759131219"></a>#include &lt;ctype.h&gt;</p>
489</td>
490<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1896711591122"><a name="p1896711591122"></a><a name="p1896711591122"></a>int isascii(int c);</p>
491</td>
492<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p169671059121216"><a name="p169671059121216"></a><a name="p169671059121216"></a>Checks for ASCII.</p>
493</td>
494</tr>
495<tr id="row39678596126"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p14967159111216"><a name="p14967159111216"></a><a name="p14967159111216"></a>#include &lt;ctype.h&gt;</p>
496</td>
497<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p109670592121"><a name="p109670592121"></a><a name="p109670592121"></a>int isdigit(int c);</p>
498</td>
499<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p296715911125"><a name="p296715911125"></a><a name="p296715911125"></a>Checks for numeric characters.</p>
500</td>
501</tr>
502<tr id="row796795971214"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1296855918123"><a name="p1296855918123"></a><a name="p1296855918123"></a>#include &lt;ctype.h&gt;</p>
503</td>
504<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p179681259151214"><a name="p179681259151214"></a><a name="p179681259151214"></a>int islower(int c);</p>
505</td>
506<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p4968175981219"><a name="p4968175981219"></a><a name="p4968175981219"></a>Checks for lowercase letters.</p>
507</td>
508</tr>
509<tr id="row696814594124"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p149681359171212"><a name="p149681359171212"></a><a name="p149681359171212"></a>#include &lt;ctype.h&gt;</p>
510</td>
511<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p2968959101214"><a name="p2968959101214"></a><a name="p2968959101214"></a>int isprint(int c);</p>
512</td>
513<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p119681659101217"><a name="p119681659101217"></a><a name="p119681659101217"></a>Checks for printable characters, including spaces.</p>
514</td>
515</tr>
516<tr id="row1138618341131"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1138617346132"><a name="p1138617346132"></a><a name="p1138617346132"></a>#include &lt;ctype.h&gt;</p>
517</td>
518<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p43861634121314"><a name="p43861634121314"></a><a name="p43861634121314"></a>int isspace(int c);</p>
519</td>
520<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p15386634201320"><a name="p15386634201320"></a><a name="p15386634201320"></a>Checks for a space.</p>
521</td>
522</tr>
523<tr id="row16388334161316"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p238811348133"><a name="p238811348133"></a><a name="p238811348133"></a>#include &lt;ctype.h&gt;</p>
524</td>
525<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1738833451318"><a name="p1738833451318"></a><a name="p1738833451318"></a>int isupper(int c);</p>
526</td>
527<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p12388173491319"><a name="p12388173491319"></a><a name="p12388173491319"></a>Checks for uppercase letters.</p>
528</td>
529</tr>
530<tr id="row8388133461313"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p103881534171315"><a name="p103881534171315"></a><a name="p103881534171315"></a>#include &lt;ctype.h&gt;</p>
531</td>
532<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p14388434191315"><a name="p14388434191315"></a><a name="p14388434191315"></a>int isxdigit(int c);</p>
533</td>
534<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p5388143416136"><a name="p5388143416136"></a><a name="p5388143416136"></a>Checks for hexadecimal digits.</p>
535</td>
536</tr>
537<tr id="row1159217444524"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1376152816136"><a name="p1376152816136"></a><a name="p1376152816136"></a>#include &lt;stdlib.h&gt;</p>
538</td>
539<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p6593344145212"><a name="p6593344145212"></a><a name="p6593344145212"></a>long int random (void);</p>
540</td>
541<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p5593194455219"><a name="p5593194455219"></a><a name="p5593194455219"></a>Generates a random number.</p>
542</td>
543</tr>
544<tr id="row113881342131"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1638913414132"><a name="p1638913414132"></a><a name="p1638913414132"></a>#include &lt;stdlib.h&gt;</p>
545</td>
546<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p63897344133"><a name="p63897344133"></a><a name="p63897344133"></a>void srandom(unsigned int seed);</p>
547</td>
548<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p73891234131318"><a name="p73891234131318"></a><a name="p73891234131318"></a>Initializes the random number generator.</p>
549</td>
550</tr>
551<tr id="row238953451316"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1638912344134"><a name="p1638912344134"></a><a name="p1638912344134"></a>#include &lt;ctype.h&gt;</p>
552</td>
553<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p938993416137"><a name="p938993416137"></a><a name="p938993416137"></a>int tolower(int c);</p>
554</td>
555<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p7389193451315"><a name="p7389193451315"></a><a name="p7389193451315"></a>Converts letters to lowercase letters.</p>
556</td>
557</tr>
558<tr id="row1438933418133"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p3389143421316"><a name="p3389143421316"></a><a name="p3389143421316"></a>#include &lt;ctype.h&gt;</p>
559</td>
560<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p5389153413136"><a name="p5389153413136"></a><a name="p5389153413136"></a>int toupper(int c);</p>
561</td>
562<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p153891834181319"><a name="p153891834181319"></a><a name="p153891834181319"></a>Converts letters to uppercase letters.</p>
563</td>
564</tr>
565<tr id="row186174504141"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p76184503142"><a name="p76184503142"></a><a name="p76184503142"></a>#include &lt;stdarg.h&gt;</p>
566</td>
567<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p106181150201414"><a name="p106181150201414"></a><a name="p106181150201414"></a>type va_arg(va_list ap, type);</p>
568</td>
569<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p12618135051410"><a name="p12618135051410"></a><a name="p12618135051410"></a>Obtains the current parameter of a variable parameter, returns the value of the specified type, and moves the pointer to the next parameter.</p>
570</td>
571</tr>
572<tr id="row1061875016140"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p76181150131419"><a name="p76181150131419"></a><a name="p76181150131419"></a>#include &lt;stdarg.h&gt;</p>
573</td>
574<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p12618205012148"><a name="p12618205012148"></a><a name="p12618205012148"></a>void va_copy(va_list dest, va_list src);</p>
575</td>
576<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1061815506146"><a name="p1061815506146"></a><a name="p1061815506146"></a>Copies parameters.</p>
577</td>
578</tr>
579<tr id="row176188501144"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p116191950171420"><a name="p116191950171420"></a><a name="p116191950171420"></a>#include &lt;stdarg.h&gt;</p>
580</td>
581<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p4619165021416"><a name="p4619165021416"></a><a name="p4619165021416"></a>void va_end(va_list ap);</p>
582</td>
583<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p166199506148"><a name="p166199506148"></a><a name="p166199506148"></a>Clears the <strong id="b105664325815"><a name="b105664325815"></a><a name="b105664325815"></a>va_list</strong> variable parameter list.</p>
584</td>
585</tr>
586<tr id="row12671173316302"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p75546311273"><a name="p75546311273"></a><a name="p75546311273"></a>#include &lt;stdarg.h&gt;</p>
587</td>
588<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p16254211285"><a name="p16254211285"></a><a name="p16254211285"></a>void va_start(va_list ap, last);</p>
589</td>
590<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p19499185722618"><a name="p19499185722618"></a><a name="p19499185722618"></a>Defines the start position of the variable-length parameter list.</p>
591</td>
592</tr>
593<tr id="row4280347300"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p10737184522311"><a name="p10737184522311"></a><a name="p10737184522311"></a>#include &lt;string.h&gt;</p>
594</td>
595<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p17737164582311"><a name="p17737164582311"></a><a name="p17737164582311"></a>char *strchr(const char *s, int c);</p>
596</td>
597<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p6737945162312"><a name="p6737945162312"></a><a name="p6737945162312"></a>Locates the last occurrence of a character in a string.</p>
598</td>
599</tr>
600<tr id="row1849925772616"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p11738124532311"><a name="p11738124532311"></a><a name="p11738124532311"></a>#include &lt;string.h&gt;</p>
601</td>
602<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p273814511233"><a name="p273814511233"></a><a name="p273814511233"></a>int strcmp(const char *s1, const char *s2);</p>
603</td>
604<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p173814516232"><a name="p173814516232"></a><a name="p173814516232"></a>Compares strings.</p>
605</td>
606</tr>
607<tr id="row1961831317314"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p573884522316"><a name="p573884522316"></a><a name="p573884522316"></a>#include &lt;string.h&gt;</p>
608</td>
609<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p18738645152312"><a name="p18738645152312"></a><a name="p18738645152312"></a>size_t strcspn(const char *s, const char *reject);</p>
610</td>
611<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p8738445122318"><a name="p8738445122318"></a><a name="p8738445122318"></a>Obtains the length of the initial segment of a string.</p>
612</td>
613</tr>
614<tr id="row654381720312"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1283311491214"><a name="p1283311491214"></a><a name="p1283311491214"></a>#include &lt;string.h&gt;</p>
615</td>
616<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p2833249132115"><a name="p2833249132115"></a><a name="p2833249132115"></a>char *strdup(const char *s);</p>
617</td>
618<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1083374916219"><a name="p1083374916219"></a><a name="p1083374916219"></a>Copies a string to a new position.</p>
619</td>
620</tr>
621<tr id="row416111248319"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p10880134072114"><a name="p10880134072114"></a><a name="p10880134072114"></a>#include &lt;string.h&gt;</p>
622</td>
623<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1588117403219"><a name="p1588117403219"></a><a name="p1588117403219"></a>size_t strlen(const char *s);</p>
624</td>
625<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p118815408213"><a name="p118815408213"></a><a name="p118815408213"></a>Calculates the length of a string.</p>
626</td>
627</tr>
628<tr id="row916122453117"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1189451515252"><a name="p1189451515252"></a><a name="p1189451515252"></a>#include &lt;strings.h&gt;</p>
629</td>
630<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1389481518258"><a name="p1389481518258"></a><a name="p1389481518258"></a>int strncasecmp(const char *s1, const char *s2, size_t n);</p>
631</td>
632<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p58942157251"><a name="p58942157251"></a><a name="p58942157251"></a>Compares fixed-length strings (case-insensitive).</p>
633</td>
634</tr>
635<tr id="row74292820312"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p17737945162315"><a name="p17737945162315"></a><a name="p17737945162315"></a>#include &lt;strings.h&gt;</p>
636</td>
637<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p107371459236"><a name="p107371459236"></a><a name="p107371459236"></a>int strcasecmp(const char *s1, const char *s2);</p>
638</td>
639<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p0737245142318"><a name="p0737245142318"></a><a name="p0737245142318"></a>Compares strings (case-insensitive).</p>
640</td>
641</tr>
642<tr id="row44320288315"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p2894115152515"><a name="p2894115152515"></a><a name="p2894115152515"></a>#include &lt;string.h&gt;</p>
643</td>
644<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p3894315202511"><a name="p3894315202511"></a><a name="p3894315202511"></a>int strncmp(const char *s1, const char *s2, size_t n);</p>
645</td>
646<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p198942152256"><a name="p198942152256"></a><a name="p198942152256"></a>Compares strings of the specified length.</p>
647</td>
648</tr>
649<tr id="row12438281317"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p58954152256"><a name="p58954152256"></a><a name="p58954152256"></a>#include &lt;string.h&gt;</p>
650</td>
651<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p489501515252"><a name="p489501515252"></a><a name="p489501515252"></a>char *strrchr(const char *s, int c);</p>
652</td>
653<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p08951815202511"><a name="p08951815202511"></a><a name="p08951815202511"></a>Locates the last occurrence of a character in a string.</p>
654</td>
655</tr>
656<tr id="row84316284312"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p198841242203010"><a name="p198841242203010"></a><a name="p198841242203010"></a>#include &lt;string.h&gt;</p>
657</td>
658<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p4895171542519"><a name="p4895171542519"></a><a name="p4895171542519"></a>char *strstr(const char *haystack, const char *needle);</p>
659</td>
660<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p889519152258"><a name="p889519152258"></a><a name="p889519152258"></a>Searches for the specified string <strong id="b991414021816"><a name="b991414021816"></a><a name="b991414021816"></a>needle</strong>.</p>
661</td>
662</tr>
663<tr id="row137113339318"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p7893129102510"><a name="p7893129102510"></a><a name="p7893129102510"></a>#include &lt;stdlib.h&gt;</p>
664</td>
665<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1789315290252"><a name="p1789315290252"></a><a name="p1789315290252"></a>long int strtol(const char *nptr, char **endptr, int base);</p>
666</td>
667<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1289342992512"><a name="p1289342992512"></a><a name="p1289342992512"></a>Converts a string into a long int value.</p>
668</td>
669</tr>
670<tr id="row571133193118"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p19894122922511"><a name="p19894122922511"></a><a name="p19894122922511"></a>#include &lt;stdlib.h&gt;</p>
671</td>
672<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p689412912255"><a name="p689412912255"></a><a name="p689412912255"></a>unsigned long int strtoul(const char *nptr, char **endptr, int base);</p>
673</td>
674<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p289417291258"><a name="p289417291258"></a><a name="p289417291258"></a>Converts a string into an unsigned long int value.</p>
675</td>
676</tr>
677<tr id="row0719336316"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p14894129122512"><a name="p14894129122512"></a><a name="p14894129122512"></a>#include &lt;stdlib.h&gt;</p>
678</td>
679<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p9894829122511"><a name="p9894829122511"></a><a name="p9894829122511"></a>unsigned long long int strtoull(const char *nptr, char **endptr,int base);</p>
680</td>
681<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p14894102918252"><a name="p14894102918252"></a><a name="p14894102918252"></a>Converts a string into an unsigned long long int value.</p>
682</td>
683</tr>
684<tr id="row371113310315"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p8981194319341"><a name="p8981194319341"></a><a name="p8981194319341"></a>#include &lt;regex.h&gt;</p>
685</td>
686<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p19981124318343"><a name="p19981124318343"></a><a name="p19981124318343"></a>int regcomp(regex_t *preg, const char *regex, int cflags);</p>
687</td>
688<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p8981124317348"><a name="p8981124317348"></a><a name="p8981124317348"></a>Compiles a regular expression.</p>
689</td>
690</tr>
691<tr id="row2072103316315"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p119816435341"><a name="p119816435341"></a><a name="p119816435341"></a>#include &lt;regex.h&gt;</p>
692</td>
693<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p39812043123415"><a name="p39812043123415"></a><a name="p39812043123415"></a>int regexec(const regex_t *preg, const char *string, size_t nmatch,regmatch_t pmatch[], int eflags);</p>
694</td>
695<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p998144310346"><a name="p998144310346"></a><a name="p998144310346"></a>Matches a regular expression.</p>
696</td>
697</tr>
698<tr id="row7727336317"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p193183620342"><a name="p193183620342"></a><a name="p193183620342"></a>#include &lt;regex.h&gt;</p>
699</td>
700<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p493116361345"><a name="p493116361345"></a><a name="p493116361345"></a>void regfree(regex_t *preg);</p>
701</td>
702<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p39311736183416"><a name="p39311736183416"></a><a name="p39311736183416"></a>Releases a regular expression.</p>
703</td>
704</tr>
705<tr id="row16726334311"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p3932636103411"><a name="p3932636103411"></a><a name="p3932636103411"></a>#include &lt;string.h&gt;</p>
706</td>
707<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p11932136113411"><a name="p11932136113411"></a><a name="p11932136113411"></a>char *strerror(int errnum);</p>
708</td>
709<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p09325369349"><a name="p09325369349"></a><a name="p09325369349"></a>Returns an error description string of the specified error code.</p>
710</td>
711</tr>
712<tr id="row1161905081418"><td class="cellrowborder" rowspan="5" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p4607855121515"><a name="p4607855121515"></a><a name="p4607855121515"></a>math</p>
713</td>
714<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p4619145014145"><a name="p4619145014145"></a><a name="p4619145014145"></a>#include &lt;stdlib.h&gt;</p>
715</td>
716<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p1661915504141"><a name="p1661915504141"></a><a name="p1661915504141"></a>int abs(int i);</p>
717</td>
718<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p1361918505143"><a name="p1361918505143"></a><a name="p1361918505143"></a>Returns the absolute value.</p>
719</td>
720</tr>
721<tr id="row1161975014142"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1461915091414"><a name="p1461915091414"></a><a name="p1461915091414"></a>#include &lt;math.h&gt;</p>
722</td>
723<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p8620145013147"><a name="p8620145013147"></a><a name="p8620145013147"></a>double log(double x);</p>
724</td>
725<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p962010508149"><a name="p962010508149"></a><a name="p962010508149"></a>Returns the natural logarithm (base-e logarithm) of <em id="i789692410344"><a name="i789692410344"></a><a name="i789692410344"></a>x</em>.</p>
726</td>
727</tr>
728<tr id="row3620450191417"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p17620165041418"><a name="p17620165041418"></a><a name="p17620165041418"></a>#include &lt;math.h&gt;</p>
729</td>
730<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p862035031414"><a name="p862035031414"></a><a name="p862035031414"></a>double pow(double x, double y);</p>
731</td>
732<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p166201750181419"><a name="p166201750181419"></a><a name="p166201750181419"></a>Returns <em id="i859117159342"><a name="i859117159342"></a><a name="i859117159342"></a>x</em> raised to the power of <em id="i8551201915349"><a name="i8551201915349"></a><a name="i8551201915349"></a>y</em>.</p>
733</td>
734</tr>
735<tr id="row25081750751"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p380714285468"><a name="p380714285468"></a><a name="p380714285468"></a>#include &lt;math.h&gt;</p>
736</td>
737<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1250835017514"><a name="p1250835017514"></a><a name="p1250835017514"></a>double round(double x);</p>
738</td>
739<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p105085501757"><a name="p105085501757"></a><a name="p105085501757"></a>Rounds off the value from zero to the nearest integer.</p>
740</td>
741</tr>
742<tr id="row6275144481911"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p527624471914"><a name="p527624471914"></a><a name="p527624471914"></a>#include &lt;math.h&gt;</p>
743</td>
744<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1927634416197"><a name="p1927634416197"></a><a name="p1927634416197"></a>double sqrt(double x);</p>
745</td>
746<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1327664471912"><a name="p1327664471912"></a><a name="p1327664471912"></a>Returns the square root of <em id="i720017623418"><a name="i720017623418"></a><a name="i720017623418"></a>x</em>.</p>
747</td>
748</tr>
749<tr id="row172761344151920"><td class="cellrowborder" rowspan="17" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p72551033216"><a name="p72551033216"></a><a name="p72551033216"></a>IO</p>
750</td>
751<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p0276194451910"><a name="p0276194451910"></a><a name="p0276194451910"></a>#include &lt;stdio.h&gt;</p>
752</td>
753<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p7276144413194"><a name="p7276144413194"></a><a name="p7276144413194"></a>void clearerr(FILE *stream);</p>
754</td>
755<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p227616447197"><a name="p227616447197"></a><a name="p227616447197"></a>Clears the file end and error indication of a stream.</p>
756</td>
757</tr>
758<tr id="row142765444190"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p82771344101917"><a name="p82771344101917"></a><a name="p82771344101917"></a>#include &lt;stdio.h&gt;</p>
759</td>
760<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1277174481914"><a name="p1277174481914"></a><a name="p1277174481914"></a>int fclose(FILE *stream);</p>
761</td>
762<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1227774421919"><a name="p1227774421919"></a><a name="p1227774421919"></a>Closes a file stream.</p>
763</td>
764</tr>
765<tr id="row1727714417196"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p027744419198"><a name="p027744419198"></a><a name="p027744419198"></a>#include &lt;stdio.h&gt;</p>
766</td>
767<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p112777446192"><a name="p112777446192"></a><a name="p112777446192"></a>FILE *fdopen(int fd, const char *mode);</p>
768</td>
769<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p132771344121915"><a name="p132771344121915"></a><a name="p132771344121915"></a>Opens a file stream by using a file descriptor.</p>
770</td>
771</tr>
772<tr id="row1927704410197"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p15278134410196"><a name="p15278134410196"></a><a name="p15278134410196"></a>#include &lt;stdio.h&gt;</p>
773</td>
774<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p8278154419194"><a name="p8278154419194"></a><a name="p8278154419194"></a>int feof(FILE *stream);</p>
775</td>
776<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p17278194419196"><a name="p17278194419196"></a><a name="p17278194419196"></a>Tests the end-of-file indicator for the specified stream.</p>
777</td>
778</tr>
779<tr id="row12834571052"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p17807122804615"><a name="p17807122804615"></a><a name="p17807122804615"></a>#include &lt;stdio.h&gt;</p>
780</td>
781<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p152840571519"><a name="p152840571519"></a><a name="p152840571519"></a>int fflush(FILE *stream);</p>
782</td>
783<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p128410571653"><a name="p128410571653"></a><a name="p128410571653"></a>Refreshes a stream.</p>
784</td>
785</tr>
786<tr id="row1387924011217"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p158801940102117"><a name="p158801940102117"></a><a name="p158801940102117"></a>#include &lt;stdio.h&gt;</p>
787</td>
788<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1588084092118"><a name="p1588084092118"></a><a name="p1588084092118"></a>char *fgets(char *s, int size, FILE *stream);</p>
789</td>
790<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p18801940102114"><a name="p18801940102114"></a><a name="p18801940102114"></a>Reads the next line of the stream.</p>
791</td>
792</tr>
793<tr id="row13880124002120"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1880174019211"><a name="p1880174019211"></a><a name="p1880174019211"></a>#include &lt;stdio.h&gt;</p>
794</td>
795<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p188020405214"><a name="p188020405214"></a><a name="p188020405214"></a>int fileno(FILE *stream);</p>
796</td>
797<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p10880140102118"><a name="p10880140102118"></a><a name="p10880140102118"></a>Returns the file descriptor of a stream.</p>
798</td>
799</tr>
800<tr id="row158312497213"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p883114915212"><a name="p883114915212"></a><a name="p883114915212"></a>#include &lt;stdio.h&gt;</p>
801</td>
802<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p98310498214"><a name="p98310498214"></a><a name="p98310498214"></a>FILE *fopen(const char *path, const char *mode);</p>
803</td>
804<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p883174917217"><a name="p883174917217"></a><a name="p883174917217"></a>Open a stream.</p>
805</td>
806</tr>
807<tr id="row128311449152119"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p208321449152111"><a name="p208321449152111"></a><a name="p208321449152111"></a>#include &lt;stdio.h&gt;</p>
808</td>
809<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p11832184902115"><a name="p11832184902115"></a><a name="p11832184902115"></a>int fputs(const char *s, FILE *stream);</p>
810</td>
811<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p783244917218"><a name="p783244917218"></a><a name="p783244917218"></a>Writes a line to a specified stream.</p>
812</td>
813</tr>
814<tr id="row108321649152116"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p168322499216"><a name="p168322499216"></a><a name="p168322499216"></a>#include &lt;stdio.h&gt;</p>
815</td>
816<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p13832194915210"><a name="p13832194915210"></a><a name="p13832194915210"></a>size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);</p>
817</td>
818<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1083216496219"><a name="p1083216496219"></a><a name="p1083216496219"></a>Reads a stream.</p>
819</td>
820</tr>
821<tr id="row178321249142110"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p13832104942110"><a name="p13832104942110"></a><a name="p13832104942110"></a>#include &lt;stdio.h&gt;</p>
822</td>
823<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p178338496215"><a name="p178338496215"></a><a name="p178338496215"></a>int fseek(FILE *stream, long offset, int whence);</p>
824</td>
825<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p2833174919213"><a name="p2833174919213"></a><a name="p2833174919213"></a>Sets the position of a stream pointer.</p>
826</td>
827</tr>
828<tr id="row158332049132114"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1983324972113"><a name="p1983324972113"></a><a name="p1983324972113"></a>#include &lt;stdio.h&gt;</p>
829</td>
830<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p188331049112115"><a name="p188331049112115"></a><a name="p188331049112115"></a>long ftell(FILE *stream);</p>
831</td>
832<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1683384912115"><a name="p1683384912115"></a><a name="p1683384912115"></a>Obtains the position of a stream pointer.</p>
833</td>
834</tr>
835<tr id="row2073644522317"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p4736194582316"><a name="p4736194582316"></a><a name="p4736194582316"></a>#include &lt;stdio.h&gt;</p>
836</td>
837<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p373674542312"><a name="p373674542312"></a><a name="p373674542312"></a>size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);</p>
838</td>
839<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1073616453235"><a name="p1073616453235"></a><a name="p1073616453235"></a>Writes data to a stream.</p>
840</td>
841</tr>
842<tr id="row07364457231"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p8736164572317"><a name="p8736164572317"></a><a name="p8736164572317"></a>#include &lt;stdio.h&gt;</p>
843</td>
844<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p37361445142318"><a name="p37361445142318"></a><a name="p37361445142318"></a>void perror(const char *s);</p>
845</td>
846<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p10737174515235"><a name="p10737174515235"></a><a name="p10737174515235"></a>Prints system error information.</p>
847</td>
848</tr>
849<tr id="row87371345152315"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p7737124520231"><a name="p7737124520231"></a><a name="p7737124520231"></a>#include &lt;stdio.h&gt;</p>
850</td>
851<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p12737124510237"><a name="p12737124510237"></a><a name="p12737124510237"></a>void rewind(FILE *stream);</p>
852</td>
853<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p87379453239"><a name="p87379453239"></a><a name="p87379453239"></a>Re-positions a stream.</p>
854</td>
855</tr>
856<tr id="row37372045122317"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p15621929303"><a name="p15621929303"></a><a name="p15621929303"></a>#include &lt;unistd.h&gt;</p>
857</td>
858<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p3117118112213"><a name="p3117118112213"></a><a name="p3117118112213"></a>ssize_t write(int fd, const void *buf, size_t size);</p>
859</td>
860<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p125627296017"><a name="p125627296017"></a><a name="p125627296017"></a>Writes data to a file.</p>
861</td>
862</tr>
863<tr id="row27383457236"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p171389471520"><a name="p171389471520"></a><a name="p171389471520"></a>#include &lt;unistd.h&gt;</p>
864</td>
865<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p35631229609"><a name="p35631229609"></a><a name="p35631229609"></a>ssize_t read(int fd, void *buf, size_t size);</p>
866</td>
867<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p35631629504"><a name="p35631629504"></a><a name="p35631629504"></a>Reads data from a file.</p>
868</td>
869</tr>
870<tr id="row98941429132516"><td class="cellrowborder" rowspan="14" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p6450611666"><a name="p6450611666"></a><a name="p6450611666"></a>net</p>
871</td>
872<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p0895142913259"><a name="p0895142913259"></a><a name="p0895142913259"></a>#include &lt;sys/socket.h&gt;</p>
873</td>
874<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p88953296252"><a name="p88953296252"></a><a name="p88953296252"></a>void freeaddrinfo(struct addrinfo *res);</p>
875</td>
876<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p10895129162510"><a name="p10895129162510"></a><a name="p10895129162510"></a>Releases the dynamic memory allocated by calling <strong id="b1419118317499"><a name="b1419118317499"></a><a name="b1419118317499"></a>getaddrinfo</strong>.</p>
877</td>
878</tr>
879<tr id="row11217457334"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p1721715563319"><a name="p1721715563319"></a><a name="p1721715563319"></a>#include &lt;sys/socket.h&gt;</p>
880</td>
881<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p821875153315"><a name="p821875153315"></a><a name="p821875153315"></a>int getaddrinfo(const char *restrict nodename,const char *restrict servname,const struct addrinfo *restrict hints,struct addrinfo **restrict res);</p>
882</td>
883<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p152188583318"><a name="p152188583318"></a><a name="p152188583318"></a>Performs network address translation.</p>
884</td>
885</tr>
886<tr id="row82182052338"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p6218453336"><a name="p6218453336"></a><a name="p6218453336"></a>#include &lt;sys/socket.h&gt;</p>
887</td>
888<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p221835173315"><a name="p221835173315"></a><a name="p221835173315"></a>int getnameinfo(const struct sockaddr *restrict sa, socklen_t salen,char *restrict node, socklen_t nodelen, char *restrict service,socklen_t servicelen, int flags);</p>
889</td>
890<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1218205163319"><a name="p1218205163319"></a><a name="p1218205163319"></a>Performs address-to-name translation in a protocol-independent manner.</p>
891</td>
892</tr>
893<tr id="row14218155123313"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p162181151337"><a name="p162181151337"></a><a name="p162181151337"></a>#include &lt;net/if.h&gt;</p>
894</td>
895<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1921815123316"><a name="p1921815123316"></a><a name="p1921815123316"></a>unsigned int if_nametoindex(const char *ifname);</p>
896</td>
897<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p19219115193319"><a name="p19219115193319"></a><a name="p19219115193319"></a>Obtains the index based on the network interface name.</p>
898</td>
899</tr>
900<tr id="row62191151336"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p498318714818"><a name="p498318714818"></a><a name="p498318714818"></a>#include &lt;arpa/inet.h&gt;</p>
901</td>
902<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p14219955333"><a name="p14219955333"></a><a name="p14219955333"></a>in_addr_t inet_addr(const char *cp);</p>
903</td>
904<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p42195512335"><a name="p42195512335"></a><a name="p42195512335"></a>Converts the network host address from dotted decimal notation to binary format.</p>
905</td>
906</tr>
907<tr id="row9219452334"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p2219250338"><a name="p2219250338"></a><a name="p2219250338"></a>#include &lt;arpa/inet.h&gt;</p>
908</td>
909<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p82199563315"><a name="p82199563315"></a><a name="p82199563315"></a>char *inet_ntoa(struct in_addr in);</p>
910</td>
911<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p521911553320"><a name="p521911553320"></a><a name="p521911553320"></a>Converts the network host address from binary format to dotted decimal notation.</p>
912</td>
913</tr>
914<tr id="row5219185123313"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p19220852335"><a name="p19220852335"></a><a name="p19220852335"></a>#include &lt;arpa/inet.h&gt;</p>
915</td>
916<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p13220165183310"><a name="p13220165183310"></a><a name="p13220165183310"></a>const char *inet_ntop(int af, const void *src,char *dst, socklen_t size);</p>
917</td>
918<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p132207512333"><a name="p132207512333"></a><a name="p132207512333"></a>Performs network address translation.</p>
919</td>
920</tr>
921<tr id="row1789532915255"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p2895122920252"><a name="p2895122920252"></a><a name="p2895122920252"></a>#include &lt;arpa/inet.h&gt;</p>
922</td>
923<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1489518294250"><a name="p1489518294250"></a><a name="p1489518294250"></a>int inet_pton(int af, const char *src, void *dst);</p>
924</td>
925<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p589562913259"><a name="p589562913259"></a><a name="p589562913259"></a>Performs network address translation.</p>
926</td>
927</tr>
928<tr id="row98812405212"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p18811340142116"><a name="p18811340142116"></a><a name="p18811340142116"></a>#include &lt;sys/socket.h&gt;</p>
929</td>
930<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p2881174042110"><a name="p2881174042110"></a><a name="p2881174042110"></a>int listen(int sockfd, int backlog);</p>
931</td>
932<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1688114014216"><a name="p1688114014216"></a><a name="p1688114014216"></a>Listens for sockets.</p>
933</td>
934</tr>
935<tr id="row64501416616"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p5844202419450"><a name="p5844202419450"></a><a name="p5844202419450"></a>#include &lt;sys/socket.h&gt;</p>
936</td>
937<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p104501116614"><a name="p104501116614"></a><a name="p104501116614"></a>ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);</p>
938</td>
939<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p184507117613"><a name="p184507117613"></a><a name="p184507117613"></a>Receives a message from a socket. Note that the IOV size can be 1 only, and the ancillary message is not supported.</p>
940</td>
941</tr>
942<tr id="row2979184353412"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p0979343153417"><a name="p0979343153417"></a><a name="p0979343153417"></a>#include &lt;sys/socket.h&gt;</p>
943</td>
944<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p129791043153414"><a name="p129791043153414"></a><a name="p129791043153414"></a>ssize_t send(int sockfd, const void *buf, size_t len, int flags);</p>
945</td>
946<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1597954313346"><a name="p1597954313346"></a><a name="p1597954313346"></a>Sends messages from a socket.</p>
947</td>
948</tr>
949<tr id="row139791843153410"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p5980104310349"><a name="p5980104310349"></a><a name="p5980104310349"></a>#include &lt;sys/socket.h&gt;</p>
950</td>
951<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1198012436344"><a name="p1198012436344"></a><a name="p1198012436344"></a>ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);</p>
952</td>
953<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p13980243183417"><a name="p13980243183417"></a><a name="p13980243183417"></a>Sends messages from a socket. Ancillary messages are not supported.</p>
954</td>
955</tr>
956<tr id="row149807433341"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p15980144323412"><a name="p15980144323412"></a><a name="p15980144323412"></a>#include &lt;sys/socket.h&gt;</p>
957</td>
958<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p11980443123414"><a name="p11980443123414"></a><a name="p11980443123414"></a>ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);</p>
959</td>
960<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p7980194311344"><a name="p7980194311344"></a><a name="p7980194311344"></a>Sends messages from a socket.</p>
961</td>
962</tr>
963<tr id="row898074393417"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p15980104333410"><a name="p15980104333410"></a><a name="p15980104333410"></a>#include &lt;sys/socket.h&gt;</p>
964</td>
965<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p15980164323416"><a name="p15980164323416"></a><a name="p15980164323416"></a>int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen);</p>
966</td>
967<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p11980043103411"><a name="p11980043103411"></a><a name="p11980043103411"></a>Sets the options associated with a socket.</p>
968</td>
969</tr>
970<tr id="row59327368348"><td class="cellrowborder" rowspan="6" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p129931916164016"><a name="p129931916164016"></a><a name="p129931916164016"></a>mem</p>
971</td>
972<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p209321136103410"><a name="p209321136103410"></a><a name="p209321136103410"></a>#include &lt;string.h&gt;</p>
973</td>
974<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p19932103663417"><a name="p19932103663417"></a><a name="p19932103663417"></a>int memcmp(const void *s1, const void *s2, size_t n);</p>
975</td>
976<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p09321336203411"><a name="p09321336203411"></a><a name="p09321336203411"></a>Compares memory areas.</p>
977</td>
978</tr>
979<tr id="row17437149124012"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p208071728194615"><a name="p208071728194615"></a><a name="p208071728194615"></a>#include &lt;string.h&gt;</p>
980</td>
981<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p14389913408"><a name="p14389913408"></a><a name="p14389913408"></a>void *memcpy(void *dest, const void *src, size_t n);</p>
982</td>
983<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1543815917403"><a name="p1543815917403"></a><a name="p1543815917403"></a>Copies memory content.</p>
984</td>
985</tr>
986<tr id="row11684183115320"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p268516355318"><a name="p268516355318"></a><a name="p268516355318"></a>#include &lt;string.h&gt;</p>
987</td>
988<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p146851314532"><a name="p146851314532"></a><a name="p146851314532"></a>void *memset(void *s, int c, size_t n);</p>
989</td>
990<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p868518395320"><a name="p868518395320"></a><a name="p868518395320"></a>Initializes memory. </p>
991</td>
992</tr>
993<tr id="row2099214166403"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p2807028194619"><a name="p2807028194619"></a><a name="p2807028194619"></a>#include &lt;stdlib.h&gt;</p>
994</td>
995<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p79931616194019"><a name="p79931616194019"></a><a name="p79931616194019"></a>void *realloc(void *ptr, size_t size);</p>
996</td>
997<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1299301634017"><a name="p1299301634017"></a><a name="p1299301634017"></a>Reallocates memory.</p>
998</td>
999</tr>
1000<tr id="row447918395349"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p12480163913340"><a name="p12480163913340"></a><a name="p12480163913340"></a>#include &lt;stdlib.h&gt;</p>
1001</td>
1002<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p16985123152111"><a name="p16985123152111"></a><a name="p16985123152111"></a>void *malloc(size_t size);</p>
1003</td>
1004<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p3480173919348"><a name="p3480173919348"></a><a name="p3480173919348"></a>Dynamically allocates memory blocks.</p>
1005</td>
1006</tr>
1007<tr id="row4480153914344"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p548053973419"><a name="p548053973419"></a><a name="p548053973419"></a>#include &lt;stdlib.h&gt;</p>
1008</td>
1009<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p17480113923414"><a name="p17480113923414"></a><a name="p17480113923414"></a>void free(void *ptr);</p>
1010</td>
1011<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1448013943410"><a name="p1448013943410"></a><a name="p1448013943410"></a>Releases the memory space to which the PTR pointer points.</p>
1012</td>
1013</tr>
1014<tr id="row388742014014"><td class="cellrowborder" rowspan="13" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p19888162024012"><a name="p19888162024012"></a><a name="p19888162024012"></a>IPC</p>
1015</td>
1016<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p138071928104615"><a name="p138071928104615"></a><a name="p138071928104615"></a>#include &lt;semaphore.h&gt;</p>
1017</td>
1018<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p118881820184016"><a name="p118881820184016"></a><a name="p118881820184016"></a>int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);</p>
1019</td>
1020<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p388892013404"><a name="p388892013404"></a><a name="p388892013404"></a>Locks a semaphore for a specified period of time.</p>
1021</td>
1022</tr>
1023<tr id="row357917181295"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p458013181192"><a name="p458013181192"></a><a name="p458013181192"></a>#include &lt;semaphore.h&gt;</p>
1024</td>
1025<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p125801118890"><a name="p125801118890"></a><a name="p125801118890"></a>int sem_destroy(sem_t *sem);</p>
1026</td>
1027<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p25806181194"><a name="p25806181194"></a><a name="p25806181194"></a>Destroys a specified anonymous semaphore.</p>
1028</td>
1029</tr>
1030<tr id="row05803181897"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p965910415379"><a name="p965910415379"></a><a name="p965910415379"></a>#include &lt;semaphore.h&gt;</p>
1031</td>
1032<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1158019187910"><a name="p1158019187910"></a><a name="p1158019187910"></a>int sem_init(sem_t *sem, int pshared, unsigned int value);</p>
1033</td>
1034<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p7580718798"><a name="p7580718798"></a><a name="p7580718798"></a>Creates and initializes an anonymous semaphore.</p>
1035</td>
1036</tr>
1037<tr id="row15580101816916"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p9921642163719"><a name="p9921642163719"></a><a name="p9921642163719"></a>#include &lt;semaphore.h&gt;</p>
1038</td>
1039<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1058018181998"><a name="p1058018181998"></a><a name="p1058018181998"></a>int sem_post(sem_t *sem);</p>
1040</td>
1041<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p658019185916"><a name="p658019185916"></a><a name="p658019185916"></a>Increments the semaphore count.</p>
1042</td>
1043</tr>
1044<tr id="row1458017183918"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p85814181393"><a name="p85814181393"></a><a name="p85814181393"></a>#include &lt;semaphore.h&gt;</p>
1045</td>
1046<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p11756161916208"><a name="p11756161916208"></a><a name="p11756161916208"></a>int sem_wait(sem_t *sem);</p>
1047</td>
1048<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p3581618993"><a name="p3581618993"></a><a name="p3581618993"></a>Obtains the semaphore.</p>
1049</td>
1050</tr>
1051<tr id="row56785240910"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p192055120141"><a name="p192055120141"></a><a name="p192055120141"></a>#include &lt;mqueue.h&gt;</p>
1052</td>
1053<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p10205191101411"><a name="p10205191101411"></a><a name="p10205191101411"></a>mqd_t mq_open(const char *mqName, int openFlag, ...);</p>
1054</td>
1055<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p020517151411"><a name="p020517151411"></a><a name="p020517151411"></a>Opens an existing message queue with the specified name or creates a message queue.</p>
1056</td>
1057</tr>
1058<tr id="row16678142410913"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p142057101413"><a name="p142057101413"></a><a name="p142057101413"></a>#include &lt;mqueue.h&gt;</p>
1059</td>
1060<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p129641445193920"><a name="p129641445193920"></a><a name="p129641445193920"></a>int mq_close(mqd_t personal);</p>
1061</td>
1062<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p82058181420"><a name="p82058181420"></a><a name="p82058181420"></a>Closes the message queue with the specified descriptor.</p>
1063</td>
1064</tr>
1065<tr id="row5679162419919"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p11663102233813"><a name="p11663102233813"></a><a name="p11663102233813"></a>#include &lt;mqueue.h&gt;</p>
1066</td>
1067<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p1560314154018"><a name="p1560314154018"></a><a name="p1560314154018"></a>int mq_unlink(const char *mqName);</p>
1068</td>
1069<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p162051116145"><a name="p162051116145"></a><a name="p162051116145"></a>Deletes a specified message queue.</p>
1070</td>
1071</tr>
1072<tr id="row167922416916"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p6882949154012"><a name="p6882949154012"></a><a name="p6882949154012"></a>#include &lt;mqueue.h&gt;</p>
1073</td>
1074<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p78764844116"><a name="p78764844116"></a><a name="p78764844116"></a>int mq_send(mqd_t personal, const char *msg, size_t msgLen, unsigned int msgPrio);</p>
1075</td>
1076<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p5205213140"><a name="p5205213140"></a><a name="p5205213140"></a>Puts a message with the specified content and length into a message queue with the specified descriptor.</p>
1077</td>
1078</tr>
1079<tr id="row20679024593"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p152819617554"><a name="p152819617554"></a><a name="p152819617554"></a>#include &lt;mqueue.h&gt;</p>
1080</td>
1081<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p54441632204118"><a name="p54441632204118"></a><a name="p54441632204118"></a>ssize_t mq_receive(mqd_t personal, char *msg, size_t msgLen, unsigned int *msgPrio);</p>
1082</td>
1083<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p12059120142"><a name="p12059120142"></a><a name="p12059120142"></a>Deletes the oldest message from the message queue with the specified descriptor and places it in the buffer pointed to by <strong id="b1031572273419"><a name="b1031572273419"></a><a name="b1031572273419"></a>msg_ptr</strong>.</p>
1084</td>
1085</tr>
1086<tr id="row719951101419"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p388725965813"><a name="p388725965813"></a><a name="p388725965813"></a>#include &lt;mqueue.h&gt;</p>
1087</td>
1088<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p431245552811"><a name="p431245552811"></a><a name="p431245552811"></a>int mq_timedsend(mqd_t personal, const char *msg, size_t msgLen, unsigned int msgPrio, const struct timespec *absTimeout)</p>
1089</td>
1090<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p192059121411"><a name="p192059121411"></a><a name="p192059121411"></a>Puts a message with the specified content and length into a message queue identified by the specified descriptor within specified time.</p>
1091</td>
1092</tr>
1093<tr id="row4199111181414"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p5206616147"><a name="p5206616147"></a><a name="p5206616147"></a>#include &lt;mqueue.h&gt;</p>
1094</td>
1095<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p118053329296"><a name="p118053329296"></a><a name="p118053329296"></a>ssize_t mq_timedreceive(mqd_t personal, char *msg, size_t msgLen, unsigned int *msgPrio, const struct timespec *absTimeout);</p>
1096</td>
1097<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p1520641121417"><a name="p1520641121417"></a><a name="p1520641121417"></a>Obtains a message with the specified content and length from a message queue specified by the descriptor.</p>
1098</td>
1099</tr>
1100<tr id="row1219914111419"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p112066171415"><a name="p112066171415"></a><a name="p112066171415"></a>#include &lt;mqueue.h&gt;</p>
1101</td>
1102<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p186421481608"><a name="p186421481608"></a><a name="p186421481608"></a>int mq_setattr(mqd_t mqdes, const struct mq_attr *__restrict newattr, struct mq_attr *__restrict oldattr);</p>
1103</td>
1104<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p220661141420"><a name="p220661141420"></a><a name="p220661141420"></a>Sets the attributes of the message queue specified by the descriptor.</p>
1105</td>
1106</tr>
1107<tr id="row9203714147"><td class="cellrowborder" rowspan="2" valign="top" width="7.12%" headers="mcps1.2.5.1.1 "><p id="p127021732195315"><a name="p127021732195315"></a><a name="p127021732195315"></a>version</p>
1108</td>
1109<td class="cellrowborder" valign="top" width="17.150000000000002%" headers="mcps1.2.5.1.2 "><p id="p1220411113145"><a name="p1220411113145"></a><a name="p1220411113145"></a>#include &lt;libc.h&gt;</p>
1110</td>
1111<td class="cellrowborder" valign="top" width="52.27%" headers="mcps1.2.5.1.3 "><p id="p2821912103011"><a name="p2821912103011"></a><a name="p2821912103011"></a>const char *libc_get_version_string(void);</p>
1112</td>
1113<td class="cellrowborder" valign="top" width="23.46%" headers="mcps1.2.5.1.4 "><p id="p132041115142"><a name="p132041115142"></a><a name="p132041115142"></a>Obtains the libc version string.</p>
1114</td>
1115</tr>
1116<tr id="row020441171415"><td class="cellrowborder" valign="top" headers="mcps1.2.5.1.1 "><p id="p6204191161411"><a name="p6204191161411"></a><a name="p6204191161411"></a>#include &lt;libc.h&gt;</p>
1117</td>
1118<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.2 "><p id="p7821112113010"><a name="p7821112113010"></a><a name="p7821112113010"></a>int libc_get_version(void);</p>
1119</td>
1120<td class="cellrowborder" valign="top" headers="mcps1.2.5.1.3 "><p id="p7204910140"><a name="p7204910140"></a><a name="p7204910140"></a>Obtains the libc version.</p>
1121</td>
1122</tr>
1123</tbody>
1124</table>
1125
1126### Important Notes<a name="section109174418147"></a>
1127
1128Error codes
1129
1130<a name="table1461445611617"></a>
1131<table><thead align="left"><tr id="row361595620166"><th class="cellrowborder" valign="top" width="18.87811218878112%" id="mcps1.1.5.1.1"><p id="p1961585615162"><a name="p1961585615162"></a><a name="p1961585615162"></a>C Name</p>
1132</th>
1133<th class="cellrowborder" valign="top" width="8.389161083891612%" id="mcps1.1.5.1.2"><p id="p1161595616164"><a name="p1161595616164"></a><a name="p1161595616164"></a>Value</p>
1134</th>
1135<th class="cellrowborder" valign="top" width="39.156084391560846%" id="mcps1.1.5.1.3"><p id="p96151756151619"><a name="p96151756151619"></a><a name="p96151756151619"></a>Description</p>
1136</th>
1137<th class="cellrowborder" valign="top" width="33.57664233576642%" id="mcps1.1.5.1.4"><p id="p101874273188"><a name="p101874273188"></a><a name="p101874273188"></a>Description</p>
1138</th>
1139</tr>
1140</thead>
1141<tbody><tr id="row176151756201613"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p17615125610163"><a name="p17615125610163"></a><a name="p17615125610163"></a>ENOERR</p>
1142</td>
1143<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p6615185613168"><a name="p6615185613168"></a><a name="p6615185613168"></a>0</p>
1144</td>
1145<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1161516567163"><a name="p1161516567163"></a><a name="p1161516567163"></a>Success</p>
1146</td>
1147<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1518722761813"><a name="p1518722761813"></a><a name="p1518722761813"></a>Successful</p>
1148</td>
1149</tr>
1150<tr id="row126154564169"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p12615185615169"><a name="p12615185615169"></a><a name="p12615185615169"></a>EPERM</p>
1151</td>
1152<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p13615956201618"><a name="p13615956201618"></a><a name="p13615956201618"></a>1</p>
1153</td>
1154<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p861613566169"><a name="p861613566169"></a><a name="p861613566169"></a>Operation not permitted</p>
1155</td>
1156<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1118714279189"><a name="p1118714279189"></a><a name="p1118714279189"></a>The operation is not allowed.</p>
1157</td>
1158</tr>
1159<tr id="row166161156171619"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p36167568161"><a name="p36167568161"></a><a name="p36167568161"></a>ENOENT</p>
1160</td>
1161<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p8616125613161"><a name="p8616125613161"></a><a name="p8616125613161"></a>2</p>
1162</td>
1163<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p18616195618167"><a name="p18616195618167"></a><a name="p18616195618167"></a>No such file or directory</p>
1164</td>
1165<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1187827161819"><a name="p1187827161819"></a><a name="p1187827161819"></a>The file or directory does not exist.</p>
1166</td>
1167</tr>
1168<tr id="row1661615691612"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p1361655661611"><a name="p1361655661611"></a><a name="p1361655661611"></a>ESRCH</p>
1169</td>
1170<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p1561675613160"><a name="p1561675613160"></a><a name="p1561675613160"></a>3</p>
1171</td>
1172<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p5616115614168"><a name="p5616115614168"></a><a name="p5616115614168"></a>No such process</p>
1173</td>
1174<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1018714272182"><a name="p1018714272182"></a><a name="p1018714272182"></a>There is no such process (not supported currently).</p>
1175</td>
1176</tr>
1177<tr id="row1461635614168"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p3616185610166"><a name="p3616185610166"></a><a name="p3616185610166"></a>EINTR</p>
1178</td>
1179<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p14617956151610"><a name="p14617956151610"></a><a name="p14617956151610"></a>4</p>
1180</td>
1181<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p7617135620164"><a name="p7617135620164"></a><a name="p7617135620164"></a>Interrupted system call</p>
1182</td>
1183<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p4188192741814"><a name="p4188192741814"></a><a name="p4188192741814"></a>The system call is interrupted.</p>
1184</td>
1185</tr>
1186<tr id="row9617256101619"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p4617156111610"><a name="p4617156111610"></a><a name="p4617156111610"></a>EIO</p>
1187</td>
1188<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p4617175621618"><a name="p4617175621618"></a><a name="p4617175621618"></a>5</p>
1189</td>
1190<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p961715567163"><a name="p961715567163"></a><a name="p961715567163"></a>I/O error</p>
1191</td>
1192<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p161881127111815"><a name="p161881127111815"></a><a name="p161881127111815"></a>An I/O error occurs. </p>
1193</td>
1194</tr>
1195<tr id="row1361712566166"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p126171656171612"><a name="p126171656171612"></a><a name="p126171656171612"></a>ENXIO</p>
1196</td>
1197<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p861715613163"><a name="p861715613163"></a><a name="p861715613163"></a>6</p>
1198</td>
1199<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p2617165612163"><a name="p2617165612163"></a><a name="p2617165612163"></a>No such device or address</p>
1200</td>
1201<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p3188627191815"><a name="p3188627191815"></a><a name="p3188627191815"></a>The device or address does not exist.</p>
1202</td>
1203</tr>
1204<tr id="row6350047161918"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p735194715198"><a name="p735194715198"></a><a name="p735194715198"></a>E2BIG</p>
1205</td>
1206<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p5351124711910"><a name="p5351124711910"></a><a name="p5351124711910"></a>7</p>
1207</td>
1208<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p0352134781911"><a name="p0352134781911"></a><a name="p0352134781911"></a>Arg list too long</p>
1209</td>
1210<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p435214761913"><a name="p435214761913"></a><a name="p435214761913"></a>The parameter list is too long.</p>
1211</td>
1212</tr>
1213<tr id="row213975216193"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p5140752121916"><a name="p5140752121916"></a><a name="p5140752121916"></a>ENOEXEC</p>
1214</td>
1215<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p714065217191"><a name="p714065217191"></a><a name="p714065217191"></a>8</p>
1216</td>
1217<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1014011526195"><a name="p1014011526195"></a><a name="p1014011526195"></a>Exec format error</p>
1218</td>
1219<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p16140165210195"><a name="p16140165210195"></a><a name="p16140165210195"></a>The execution format is incorrect.</p>
1220</td>
1221</tr>
1222<tr id="row102512056181910"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p192526568193"><a name="p192526568193"></a><a name="p192526568193"></a>EBADF</p>
1223</td>
1224<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p425216569195"><a name="p425216569195"></a><a name="p425216569195"></a>9</p>
1225</td>
1226<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p425275616196"><a name="p425275616196"></a><a name="p425275616196"></a>Bad file number</p>
1227</td>
1228<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1225255611911"><a name="p1225255611911"></a><a name="p1225255611911"></a>The file descriptor is invalid.</p>
1229</td>
1230</tr>
1231<tr id="row440551118208"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p11405181102016"><a name="p11405181102016"></a><a name="p11405181102016"></a>ECHILD</p>
1232</td>
1233<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p440661111200"><a name="p440661111200"></a><a name="p440661111200"></a>10</p>
1234</td>
1235<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p124061211192013"><a name="p124061211192013"></a><a name="p124061211192013"></a>No child processes</p>
1236</td>
1237<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p24067113203"><a name="p24067113203"></a><a name="p24067113203"></a>There is no child process (not supported currently).</p>
1238</td>
1239</tr>
1240<tr id="row17406611142014"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p9406181112208"><a name="p9406181112208"></a><a name="p9406181112208"></a>EAGAIN</p>
1241</td>
1242<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p14061911152017"><a name="p14061911152017"></a><a name="p14061911152017"></a>11</p>
1243</td>
1244<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p2040618116209"><a name="p2040618116209"></a><a name="p2040618116209"></a>Try again</p>
1245</td>
1246<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p124061311152012"><a name="p124061311152012"></a><a name="p124061311152012"></a>The resource is temporarily unavailable.</p>
1247</td>
1248</tr>
1249<tr id="row19372181712202"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p20372161792018"><a name="p20372161792018"></a><a name="p20372161792018"></a>ENOMEM</p>
1250</td>
1251<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p133721217102014"><a name="p133721217102014"></a><a name="p133721217102014"></a>12</p>
1252</td>
1253<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1237231772016"><a name="p1237231772016"></a><a name="p1237231772016"></a>Out of memory</p>
1254</td>
1255<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p3372101716207"><a name="p3372101716207"></a><a name="p3372101716207"></a>The memory overflows.</p>
1256</td>
1257</tr>
1258<tr id="row113721617102013"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p63721017172015"><a name="p63721017172015"></a><a name="p63721017172015"></a>EACCES</p>
1259</td>
1260<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p5372111712202"><a name="p5372111712202"></a><a name="p5372111712202"></a>13</p>
1261</td>
1262<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p837281772015"><a name="p837281772015"></a><a name="p837281772015"></a>Permission denied</p>
1263</td>
1264<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p63721717192011"><a name="p63721717192011"></a><a name="p63721717192011"></a>The permission is rejected.</p>
1265</td>
1266</tr>
1267<tr id="row1237241712201"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p1937381711208"><a name="p1937381711208"></a><a name="p1937381711208"></a>EFAULT</p>
1268</td>
1269<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p6373191717208"><a name="p6373191717208"></a><a name="p6373191717208"></a>14</p>
1270</td>
1271<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p6373717142017"><a name="p6373717142017"></a><a name="p6373717142017"></a>Bad address</p>
1272</td>
1273<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p14373101710201"><a name="p14373101710201"></a><a name="p14373101710201"></a>The address is incorrect.</p>
1274</td>
1275</tr>
1276<tr id="row6373101714204"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p9373201719200"><a name="p9373201719200"></a><a name="p9373201719200"></a>ENOTBLK</p>
1277</td>
1278<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p1737331732020"><a name="p1737331732020"></a><a name="p1737331732020"></a>15</p>
1279</td>
1280<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1837371742015"><a name="p1837371742015"></a><a name="p1837371742015"></a>Block device required</p>
1281</td>
1282<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p3373191716208"><a name="p3373191716208"></a><a name="p3373191716208"></a>A block device is required.</p>
1283</td>
1284</tr>
1285<tr id="row1737381712204"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p183731917112019"><a name="p183731917112019"></a><a name="p183731917112019"></a>EBUSY</p>
1286</td>
1287<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p83739178201"><a name="p83739178201"></a><a name="p83739178201"></a>16</p>
1288</td>
1289<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p13731717142019"><a name="p13731717142019"></a><a name="p13731717142019"></a>Device or resource busy</p>
1290</td>
1291<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p5373917182015"><a name="p5373917182015"></a><a name="p5373917182015"></a>The device or resource is engaged.</p>
1292</td>
1293</tr>
1294<tr id="row126222262207"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p196221526122019"><a name="p196221526122019"></a><a name="p196221526122019"></a>EEXIST</p>
1295</td>
1296<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p26221526202018"><a name="p26221526202018"></a><a name="p26221526202018"></a>17</p>
1297</td>
1298<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p15622826102020"><a name="p15622826102020"></a><a name="p15622826102020"></a>File exists</p>
1299</td>
1300<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p0622182610202"><a name="p0622182610202"></a><a name="p0622182610202"></a>The file already exists.</p>
1301</td>
1302</tr>
1303<tr id="row262213261209"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p362322652010"><a name="p362322652010"></a><a name="p362322652010"></a>EXDEV</p>
1304</td>
1305<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p1362342611204"><a name="p1362342611204"></a><a name="p1362342611204"></a>18</p>
1306</td>
1307<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p196231626192013"><a name="p196231626192013"></a><a name="p196231626192013"></a>Cross-device link</p>
1308</td>
1309<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1762317261203"><a name="p1762317261203"></a><a name="p1762317261203"></a>The cross-device link is invalid.</p>
1310</td>
1311</tr>
1312<tr id="row196234264205"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p16623152620202"><a name="p16623152620202"></a><a name="p16623152620202"></a>ENODEV</p>
1313</td>
1314<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p146232026112020"><a name="p146232026112020"></a><a name="p146232026112020"></a>19</p>
1315</td>
1316<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p7623122611209"><a name="p7623122611209"></a><a name="p7623122611209"></a>No such device</p>
1317</td>
1318<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p762372662018"><a name="p762372662018"></a><a name="p762372662018"></a>The device does not exist.</p>
1319</td>
1320</tr>
1321<tr id="row662392672016"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p1662392602016"><a name="p1662392602016"></a><a name="p1662392602016"></a>ENOTDIR</p>
1322</td>
1323<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p15623426162016"><a name="p15623426162016"></a><a name="p15623426162016"></a>20</p>
1324</td>
1325<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p96231426132012"><a name="p96231426132012"></a><a name="p96231426132012"></a>Not a directory</p>
1326</td>
1327<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p46241026132015"><a name="p46241026132015"></a><a name="p46241026132015"></a>It is not a directory.</p>
1328</td>
1329</tr>
1330<tr id="row9624192662010"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p136241026102013"><a name="p136241026102013"></a><a name="p136241026102013"></a>EISDIR</p>
1331</td>
1332<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p7624152616208"><a name="p7624152616208"></a><a name="p7624152616208"></a>21</p>
1333</td>
1334<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p3624182610205"><a name="p3624182610205"></a><a name="p3624182610205"></a>Is a directory</p>
1335</td>
1336<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1662432615206"><a name="p1662432615206"></a><a name="p1662432615206"></a>It is a directory.</p>
1337</td>
1338</tr>
1339<tr id="row17624926132019"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p662402642012"><a name="p662402642012"></a><a name="p662402642012"></a>EINVAL</p>
1340</td>
1341<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p12624162632019"><a name="p12624162632019"></a><a name="p12624162632019"></a>22</p>
1342</td>
1343<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p9624126122014"><a name="p9624126122014"></a><a name="p9624126122014"></a>Invalid argument</p>
1344</td>
1345<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p4624132613202"><a name="p4624132613202"></a><a name="p4624132613202"></a>The parameter is invalid.</p>
1346</td>
1347</tr>
1348<tr id="row19624326122011"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p96241426192018"><a name="p96241426192018"></a><a name="p96241426192018"></a>ENFILE*</p>
1349</td>
1350<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p7625112619206"><a name="p7625112619206"></a><a name="p7625112619206"></a>23</p>
1351</td>
1352<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p126252026192014"><a name="p126252026192014"></a><a name="p126252026192014"></a>File table overflow</p>
1353</td>
1354<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1562552618204"><a name="p1562552618204"></a><a name="p1562552618204"></a>The number of file systems opened exceeds the limit.</p>
1355</td>
1356</tr>
1357<tr id="row6625126142011"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p186251826142017"><a name="p186251826142017"></a><a name="p186251826142017"></a>EMFILE</p>
1358</td>
1359<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p20625026172012"><a name="p20625026172012"></a><a name="p20625026172012"></a>24</p>
1360</td>
1361<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1662515264201"><a name="p1662515264201"></a><a name="p1662515264201"></a>Too many open files</p>
1362</td>
1363<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p126259262202"><a name="p126259262202"></a><a name="p126259262202"></a>The number of files opened exceeds the limit.</p>
1364</td>
1365</tr>
1366<tr id="row16636135918198"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p263614597194"><a name="p263614597194"></a><a name="p263614597194"></a>EFBIG</p>
1367</td>
1368<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p19636759191913"><a name="p19636759191913"></a><a name="p19636759191913"></a>27</p>
1369</td>
1370<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p15636145917193"><a name="p15636145917193"></a><a name="p15636145917193"></a>File too large</p>
1371</td>
1372<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1763655971914"><a name="p1763655971914"></a><a name="p1763655971914"></a>The file is too large.</p>
1373</td>
1374</tr>
1375<tr id="row19934164082020"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p18935134010206"><a name="p18935134010206"></a><a name="p18935134010206"></a>ENOSPC</p>
1376</td>
1377<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p14935124072017"><a name="p14935124072017"></a><a name="p14935124072017"></a>28</p>
1378</td>
1379<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p19935174017202"><a name="p19935174017202"></a><a name="p19935174017202"></a>No space left on device</p>
1380</td>
1381<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p149351540182020"><a name="p149351540182020"></a><a name="p149351540182020"></a>There is no space on the device.</p>
1382</td>
1383</tr>
1384<tr id="row1493514402208"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p1293516403200"><a name="p1293516403200"></a><a name="p1293516403200"></a>ESPIPE</p>
1385</td>
1386<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p0935194012207"><a name="p0935194012207"></a><a name="p0935194012207"></a>29</p>
1387</td>
1388<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1793554011209"><a name="p1793554011209"></a><a name="p1793554011209"></a>Illegal seek</p>
1389</td>
1390<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1693554072015"><a name="p1693554072015"></a><a name="p1693554072015"></a>Illegal shift</p>
1391</td>
1392</tr>
1393<tr id="row1593554002016"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p6935440162020"><a name="p6935440162020"></a><a name="p6935440162020"></a>EROFS</p>
1394</td>
1395<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p16935184013201"><a name="p16935184013201"></a><a name="p16935184013201"></a>30</p>
1396</td>
1397<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p20935134062015"><a name="p20935134062015"></a><a name="p20935134062015"></a>Read-only file system</p>
1398</td>
1399<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p2936240132017"><a name="p2936240132017"></a><a name="p2936240132017"></a>The file system is read-only.</p>
1400</td>
1401</tr>
1402<tr id="row0936114012013"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p79361140172019"><a name="p79361140172019"></a><a name="p79361140172019"></a>EMLINK</p>
1403</td>
1404<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p5936144018202"><a name="p5936144018202"></a><a name="p5936144018202"></a>31</p>
1405</td>
1406<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p17936340182019"><a name="p17936340182019"></a><a name="p17936340182019"></a>Too many links</p>
1407</td>
1408<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p69361540122015"><a name="p69361540122015"></a><a name="p69361540122015"></a>There are too many links.</p>
1409</td>
1410</tr>
1411<tr id="row14936540152011"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p109364403207"><a name="p109364403207"></a><a name="p109364403207"></a>EDOM</p>
1412</td>
1413<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p593710401205"><a name="p593710401205"></a><a name="p593710401205"></a>33</p>
1414</td>
1415<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p493714017209"><a name="p493714017209"></a><a name="p493714017209"></a>Math argument out of domain</p>
1416</td>
1417<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p19937194013202"><a name="p19937194013202"></a><a name="p19937194013202"></a>The value is out of range.</p>
1418</td>
1419</tr>
1420<tr id="row0937940142010"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p16937104052015"><a name="p16937104052015"></a><a name="p16937104052015"></a>ERANGE</p>
1421</td>
1422<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p393704052010"><a name="p393704052010"></a><a name="p393704052010"></a>34</p>
1423</td>
1424<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p9937104052017"><a name="p9937104052017"></a><a name="p9937104052017"></a>Math result not representable</p>
1425</td>
1426<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p2937184012012"><a name="p2937184012012"></a><a name="p2937184012012"></a>The result is not representative.</p>
1427</td>
1428</tr>
1429<tr id="row0937340112016"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p11937144016209"><a name="p11937144016209"></a><a name="p11937144016209"></a>EDEADLK</p>
1430</td>
1431<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p3937164022010"><a name="p3937164022010"></a><a name="p3937164022010"></a>35</p>
1432</td>
1433<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p17937440122016"><a name="p17937440122016"></a><a name="p17937440122016"></a>Resource deadlock would occur</p>
1434</td>
1435<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p159371140152015"><a name="p159371140152015"></a><a name="p159371140152015"></a>Resource deadlock occurs.</p>
1436</td>
1437</tr>
1438<tr id="row1293704015200"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p13937184012012"><a name="p13937184012012"></a><a name="p13937184012012"></a>ENAMETOOLONG</p>
1439</td>
1440<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p7938440132016"><a name="p7938440132016"></a><a name="p7938440132016"></a>36</p>
1441</td>
1442<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1693864022011"><a name="p1693864022011"></a><a name="p1693864022011"></a>Filename too long</p>
1443</td>
1444<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p693816405205"><a name="p693816405205"></a><a name="p693816405205"></a>The file name is too long.</p>
1445</td>
1446</tr>
1447<tr id="row13938140102013"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p293894022010"><a name="p293894022010"></a><a name="p293894022010"></a>ENOLCK</p>
1448</td>
1449<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p1693854011202"><a name="p1693854011202"></a><a name="p1693854011202"></a>37</p>
1450</td>
1451<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p159381440172017"><a name="p159381440172017"></a><a name="p159381440172017"></a>No record locks available</p>
1452</td>
1453<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p593814400200"><a name="p593814400200"></a><a name="p593814400200"></a>There is no lock available.</p>
1454</td>
1455</tr>
1456<tr id="row2938134012207"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p49389409201"><a name="p49389409201"></a><a name="p49389409201"></a>ENOSYS</p>
1457</td>
1458<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p793854032020"><a name="p793854032020"></a><a name="p793854032020"></a>38</p>
1459</td>
1460<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p11938144014202"><a name="p11938144014202"></a><a name="p11938144014202"></a>Function not implemented</p>
1461</td>
1462<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p119385407204"><a name="p119385407204"></a><a name="p119385407204"></a>The function is not implemented.</p>
1463</td>
1464</tr>
1465<tr id="row793884014206"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p79381440152011"><a name="p79381440152011"></a><a name="p79381440152011"></a>ENOTEMPTY</p>
1466</td>
1467<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p1193913402204"><a name="p1193913402204"></a><a name="p1193913402204"></a>39</p>
1468</td>
1469<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p1793914022012"><a name="p1793914022012"></a><a name="p1793914022012"></a>Directory not empty</p>
1470</td>
1471<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p2939640102011"><a name="p2939640102011"></a><a name="p2939640102011"></a>The directory is not empty.</p>
1472</td>
1473</tr>
1474<tr id="row99391740132015"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p7939114092019"><a name="p7939114092019"></a><a name="p7939114092019"></a>ELOOP</p>
1475</td>
1476<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p0939154052014"><a name="p0939154052014"></a><a name="p0939154052014"></a>40</p>
1477</td>
1478<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p39391140192013"><a name="p39391140192013"></a><a name="p39391140192013"></a>Too many symbolic links encountered</p>
1479</td>
1480<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p893914002015"><a name="p893914002015"></a><a name="p893914002015"></a>There are too many symbolic link layers.</p>
1481</td>
1482</tr>
1483<tr id="row1293914014205"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p993984020209"><a name="p993984020209"></a><a name="p993984020209"></a>ENOMSG</p>
1484</td>
1485<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p99401240132020"><a name="p99401240132020"></a><a name="p99401240132020"></a>42</p>
1486</td>
1487<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p6940104012203"><a name="p6940104012203"></a><a name="p6940104012203"></a>No message of desired type</p>
1488</td>
1489<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p2094044014203"><a name="p2094044014203"></a><a name="p2094044014203"></a>There is no message of the expected type.</p>
1490</td>
1491</tr>
1492<tr id="row29401240102017"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p294034010207"><a name="p294034010207"></a><a name="p294034010207"></a>EIDRM</p>
1493</td>
1494<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p209401040172014"><a name="p209401040172014"></a><a name="p209401040172014"></a>43</p>
1495</td>
1496<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p10940540142018"><a name="p10940540142018"></a><a name="p10940540142018"></a>Identifier removed</p>
1497</td>
1498<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p169401740142011"><a name="p169401740142011"></a><a name="p169401740142011"></a>The identifier is removed. </p>
1499</td>
1500</tr>
1501<tr id="row139436408209"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p1694318401206"><a name="p1694318401206"></a><a name="p1694318401206"></a>ELNRNG</p>
1502</td>
1503<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p494364022013"><a name="p494364022013"></a><a name="p494364022013"></a>48</p>
1504</td>
1505<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p69431040132015"><a name="p69431040132015"></a><a name="p69431040132015"></a>Link number out of range</p>
1506</td>
1507<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p594374014204"><a name="p594374014204"></a><a name="p594374014204"></a>The number of links exceeds the limit.</p>
1508</td>
1509</tr>
1510<tr id="row134843121315"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p14184391312"><a name="p14184391312"></a><a name="p14184391312"></a>EBADR</p>
1511</td>
1512<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p54164319138"><a name="p54164319138"></a><a name="p54164319138"></a>53</p>
1513</td>
1514<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p54164341316"><a name="p54164341316"></a><a name="p54164341316"></a>Invalid request descriptor</p>
1515</td>
1516<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p8474310134"><a name="p8474310134"></a><a name="p8474310134"></a>The requested descriptor is invalid.</p>
1517</td>
1518</tr>
1519<tr id="row05164312134"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p155184341315"><a name="p155184341315"></a><a name="p155184341315"></a>EBADRQC</p>
1520</td>
1521<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p13516437131"><a name="p13516437131"></a><a name="p13516437131"></a>56</p>
1522</td>
1523<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p11520433131"><a name="p11520433131"></a><a name="p11520433131"></a>Invalid request code</p>
1524</td>
1525<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p7517431132"><a name="p7517431132"></a><a name="p7517431132"></a>The requested code is invalid.</p>
1526</td>
1527</tr>
1528<tr id="row117194315132"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p471343101310"><a name="p471343101310"></a><a name="p471343101310"></a>ENOSTR</p>
1529</td>
1530<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p4754311132"><a name="p4754311132"></a><a name="p4754311132"></a>60</p>
1531</td>
1532<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p19724331315"><a name="p19724331315"></a><a name="p19724331315"></a>Device not a stream</p>
1533</td>
1534<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p147943181312"><a name="p147943181312"></a><a name="p147943181312"></a>The device is not a character stream.</p>
1535</td>
1536</tr>
1537<tr id="row157343101319"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p18812437137"><a name="p18812437137"></a><a name="p18812437137"></a>ENODATA</p>
1538</td>
1539<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p986435132"><a name="p986435132"></a><a name="p986435132"></a>61</p>
1540</td>
1541<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p38643181312"><a name="p38643181312"></a><a name="p38643181312"></a>No data available</p>
1542</td>
1543<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p88164321314"><a name="p88164321314"></a><a name="p88164321314"></a>No data is available.</p>
1544</td>
1545</tr>
1546<tr id="row1381443191315"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p1587439138"><a name="p1587439138"></a><a name="p1587439138"></a>ETIME</p>
1547</td>
1548<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p58343101315"><a name="p58343101315"></a><a name="p58343101315"></a>62</p>
1549</td>
1550<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p98194371314"><a name="p98194371314"></a><a name="p98194371314"></a>Timer expired</p>
1551</td>
1552<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p1881543131310"><a name="p1881543131310"></a><a name="p1881543131310"></a>The timer has expired.</p>
1553</td>
1554</tr>
1555<tr id="row1911184321313"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p19117436135"><a name="p19117436135"></a><a name="p19117436135"></a>EPROTO</p>
1556</td>
1557<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p2111743101319"><a name="p2111743101319"></a><a name="p2111743101319"></a>71</p>
1558</td>
1559<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p111144312132"><a name="p111144312132"></a><a name="p111144312132"></a>Protocol error</p>
1560</td>
1561<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p111194331317"><a name="p111194331317"></a><a name="p111194331317"></a>Protocol error.</p>
1562</td>
1563</tr>
1564<tr id="row712184319136"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p31211436132"><a name="p31211436132"></a><a name="p31211436132"></a>EBADMSG</p>
1565</td>
1566<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p1712164319132"><a name="p1712164319132"></a><a name="p1712164319132"></a>74</p>
1567</td>
1568<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p2126438135"><a name="p2126438135"></a><a name="p2126438135"></a>Not a data message</p>
1569</td>
1570<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p11284331314"><a name="p11284331314"></a><a name="p11284331314"></a>It is not a data message.</p>
1571</td>
1572</tr>
1573<tr id="row712174361312"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p41384316136"><a name="p41384316136"></a><a name="p41384316136"></a>EOVERFLOW</p>
1574</td>
1575<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p19131443181319"><a name="p19131443181319"></a><a name="p19131443181319"></a>75</p>
1576</td>
1577<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p161334341317"><a name="p161334341317"></a><a name="p161334341317"></a>Value too large for defined data type</p>
1578</td>
1579<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p9132043151316"><a name="p9132043151316"></a><a name="p9132043151316"></a>The value is too large for the data type.</p>
1580</td>
1581</tr>
1582<tr id="row61784351317"><td class="cellrowborder" valign="top" width="18.87811218878112%" headers="mcps1.1.5.1.1 "><p id="p017174351318"><a name="p017174351318"></a><a name="p017174351318"></a>EMSGSIZE</p>
1583</td>
1584<td class="cellrowborder" valign="top" width="8.389161083891612%" headers="mcps1.1.5.1.2 "><p id="p81714435138"><a name="p81714435138"></a><a name="p81714435138"></a>90</p>
1585</td>
1586<td class="cellrowborder" valign="top" width="39.156084391560846%" headers="mcps1.1.5.1.3 "><p id="p121794331317"><a name="p121794331317"></a><a name="p121794331317"></a>Message too long</p>
1587</td>
1588<td class="cellrowborder" valign="top" width="33.57664233576642%" headers="mcps1.1.5.1.4 "><p id="p91718438133"><a name="p91718438133"></a><a name="p91718438133"></a>The message is too long.</p>
1589</td>
1590</tr>
1591</tbody>
1592</table>
1593
1594### Development Example<a name="section206149278155"></a>
1595
1596Demo:
1597
1598Creates a thread, transfers the information in the parent thread to the child thread, and prints the transferred information and the thread ID in the child thread.
1599
1600```
1601#include <stdio.h>
1602#include <pthread.h>
1603
1604pthread_t ntid;
1605
1606void *ThreadFn(void *arg)
1607{
1608    pthread_t tid;
1609    while(1) {
1610        tid = pthread_self();
1611        printf("\n++++++++++++++  %s  %s  tid = %d ++++++++++++++\n", (char*)arg, __FUNCTION__, tid);
1612    }
1613    return ((void *)0);
1614}
1615
1616void DemoForTest()
1617{
1618    int err;
1619    char* str = "Hello world";
1620    err = pthread_create(&ntid, NULL, ThreadFn, (void*)str);
1621    if(err != 0) {
1622        printf("can't create thread\n");
1623    }
1624}
1625
1626```
1627
1628The execution result of  **DemoForTest**  is as follows:
1629
1630```
1631++++++++++++++  Hello world  ThreadFn  tid = 48 ++++++++++++++
1632
1633++++++++++++++  Hello world  ThreadFn  tid = 48 ++++++++++++++
1634
1635++++++++++++++  Hello world  ThreadFn  tid = 48 ++++++++++++++
1636```
1637
1638