summaryrefslogtreecommitdiff
path: root/devdocs/c/program.html
diff options
context:
space:
mode:
Diffstat (limited to 'devdocs/c/program.html')
-rw-r--r--devdocs/c/program.html73
1 files changed, 73 insertions, 0 deletions
diff --git a/devdocs/c/program.html b/devdocs/c/program.html
new file mode 100644
index 00000000..95464568
--- /dev/null
+++ b/devdocs/c/program.html
@@ -0,0 +1,73 @@
+ <h1 id="firstHeading" class="firstHeading">Program support utilities</h1> <h3 id="Program_termination"> Program termination</h3> <p>The following functions manage program termination and resources cleanup.</p>
+<table class="t-dsc-begin"> <tr class="t-dsc-header"> <th colspan="2"> Defined in header <code>&lt;stdlib.h&gt;</code> </th>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/abort" title="c/program/abort"> <span class="t-lines"><span>abort</span></span></a></div> </td> <td> causes abnormal program termination (without cleaning up) <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/exit" title="c/program/exit"> <span class="t-lines"><span>exit</span></span></a></div> </td> <td> causes normal program termination with cleaning up <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/quick_exit" title="c/program/quick exit"> <span class="t-lines"><span>quick_exit</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c11">(C11)</span></span></span></div> </td> <td> causes normal program termination without completely cleaning up <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/_exit" title="c/program/ Exit"> <span class="t-lines"><span>_Exit</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c99">(C99)</span></span></span></div> </td> <td> causes normal program termination without cleaning up <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/atexit" title="c/program/atexit"> <span class="t-lines"><span>atexit</span></span></a></div> </td> <td> registers a function to be called on <code><a href="program/exit" title="c/program/exit">exit()</a></code> invocation <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/at_quick_exit" title="c/program/at quick exit"> <span class="t-lines"><span>at_quick_exit</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c11">(C11)</span></span></span></div> </td> <td> registers a function to be called on <a href="program/quick_exit" title="c/program/quick exit"><code>quick_exit</code></a> invocation <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/exit_status" title="c/program/EXIT status"> <span class="t-lines"><span>EXIT_SUCCESS</span><span>EXIT_FAILURE</span></span></a></div> </td> <td> indicates program execution execution status <br> <span class="t-mark">(macro constant)</span> </td>
+</tr> </table> <h3 id="Unreachable_control_flow"> Unreachable control flow</h3> <table class="t-dsc-begin"> <tr class="t-dsc-header"> <th colspan="2"> Defined in header <code>&lt;stddef.h&gt;</code> </th>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/unreachable" title="c/program/unreachable"> <span class="t-lines"><span>unreachable</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c23">(C23)</span></span></span></div> </td> <td> marks unreachable point of execution <br> <span class="t-mark">(function macro)</span> </td>
+</tr> </table> <h3 id="Communicating_with_the_environment"> Communicating with the environment</h3> <table class="t-dsc-begin"> <tr class="t-dsc-header"> <th colspan="2"> Defined in header <code>&lt;stdlib.h&gt;</code> </th>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/system" title="c/program/system"> <span class="t-lines"><span>system</span></span></a></div> </td> <td> calls the host environment's command processor <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/getenv" title="c/program/getenv"> <span class="t-lines"><span>getenv</span><span>getenv_s</span></span></a></div>
+<div><span class="t-lines"><span><span class="t-mark-rev t-since-c11">(C11)</span></span></span></div> </td> <td> access to the list of environment variables <br> <span class="t-mark">(function)</span> </td>
+</tr> </table> <h3 id="Signals"> Signals</h3> <p>Several functions and macro constants for signal management are provided.</p>
+<table class="t-dsc-begin"> <tr class="t-dsc-header"> <th colspan="2"> Defined in header <code>&lt;signal.h&gt;</code> </th>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/signal" title="c/program/signal"> <span class="t-lines"><span>signal</span></span></a></div> </td> <td> sets a signal handler for particular signal <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/raise" title="c/program/raise"> <span class="t-lines"><span>raise</span></span></a></div> </td> <td> runs the signal handler for particular signal <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/sig_atomic_t" title="c/program/sig atomic t"> <span class="t-lines"><span>sig_atomic_t</span></span></a></div> </td> <td> the integer type that can be accessed as an atomic entity from an asynchronous signal handler <br> <span class="t-mark">(typedef)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/sig_strategies" title="c/program/SIG strategies"> <span class="t-lines"><span>SIG_DFL</span><span>SIG_IGN</span></span></a></div> </td> <td> defines signal handling strategies <br> <span class="t-mark">(macro constant)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/sig_err" title="c/program/SIG ERR"> <span class="t-lines"><span>SIG_ERR</span></span></a></div> </td> <td> error was encountered <br> <span class="t-mark">(macro constant)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="Signal_types"> Signal types </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/sig_types" title="c/program/SIG types"> <span class="t-lines"><span>SIGABRT</span><span>SIGFPE</span><span>SIGILL</span><span>SIGINT</span><span>SIGSEGV</span><span>SIGTERM</span></span></a></div> </td> <td> defines signal types <br> <span class="t-mark">(macro constant)</span> </td>
+</tr> </table> <h3 id="Non-local_jumps"> Non-local jumps</h3> <table class="t-dsc-begin"> <tr class="t-dsc-header"> <th colspan="2"> Defined in header <code>&lt;setjmp.h&gt;</code> </th>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/setjmp" title="c/program/setjmp"> <span class="t-lines"><span>setjmp</span></span></a></div> </td> <td> saves the context <br> <span class="t-mark">(function macro)</span> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/longjmp" title="c/program/longjmp"> <span class="t-lines"><span>longjmp</span></span></a></div> </td> <td> jumps to specified location <br> <span class="t-mark">(function)</span> </td>
+</tr> <tr> <td colspan="2"> <h5 id="Types"> Types </h5> </td>
+</tr> <tr class="t-dsc"> <td> <div><a href="program/jmp_buf" title="c/program/jmp buf"> <span class="t-lines"><span>jmp_buf</span></span></a></div> </td> <td> execution context type <br> <span class="t-mark">(typedef)</span> </td>
+</tr> </table> <h3 id="References"> References</h3> <ul>
+<li> C17 standard (ISO/IEC 9899:2018): </li>
+<ul>
+<li> 7.13 Nonlocal jumps &lt;setjmp.h&gt; (p: 191-192) </li>
+<li> 7.14 Signal handling &lt;signal.h&gt; (p: 193-195) </li>
+<li> 7.22 General utilities &lt;stdlib.h&gt; (p: 248-262) </li>
+<li> 7.31.7 Signal handling &lt;signal.h&gt; (p: 332) </li>
+<li> 7.31.12 General utilities &lt;stdlib.h&gt; (p: 333) </li>
+</ul>
+<li> C11 standard (ISO/IEC 9899:2011): </li>
+<ul>
+<li> 7.13 Nonlocal jumps &lt;setjmp.h&gt; (p: 262-264) </li>
+<li> 7.14 Signal handling &lt;signal.h&gt; (p: 265-267) </li>
+<li> 7.22 General utilities &lt;stdlib.h&gt; (p: 340-360) </li>
+<li> 7.31.7 Signal handling &lt;signal.h&gt; (p: 455) </li>
+<li> 7.31.12 General utilities &lt;stdlib.h&gt; (p: 456) </li>
+</ul>
+<li> C99 standard (ISO/IEC 9899:1999): </li>
+<ul>
+<li> 7.13 Nonlocal jumps &lt;setjmp.h&gt; (p: 243-245) </li>
+<li> 7.14 Signal handling &lt;signal.h&gt; (p: 246-248) </li>
+<li> 7.20 General utilities &lt;stdlib.h&gt; (p: 306-324) </li>
+<li> 7.26.6 Signal handling &lt;signal.h&gt; (p: 401) </li>
+<li> 7.26.10 General utilities &lt;stdlib.h&gt; (p: 402) </li>
+</ul>
+<li> C89/C90 standard (ISO/IEC 9899:1990): </li>
+<ul>
+<li> 4.6 NON-LOCAL JUMPS &lt;setjmp.h&gt; </li>
+<li> 4.7 SIGNAL HANDLING &lt;signal.h&gt; </li>
+<li> 4.10 GENERAL UTILITIES &lt;stdlib.h&gt; </li>
+<li> 4.13.5 Signal handling &lt;signal.h&gt; </li>
+<li> 7.13.7 General utilities &lt;stdlib.h&gt; </li>
+</ul>
+</ul> <h3 id="See_also"> See also</h3> <table class="t-dsc-begin"> <tr class="t-dsc"> <td colspan="2"> <span><a href="https://en.cppreference.com/w/cpp/utility/program" title="cpp/utility/program">C++ documentation</a></span> for <span class=""><span>Program support utilities</span></span> </td>
+</tr> </table> <div class="_attribution">
+ <p class="_attribution-p">
+ &copy; cppreference.com<br>Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.<br>
+ <a href="https://en.cppreference.com/w/c/program" class="_attribution-link">https://en.cppreference.com/w/c/program</a>
+ </p>
+</div>