diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/c/program.html | |
new repository
Diffstat (limited to 'devdocs/c/program.html')
| -rw-r--r-- | devdocs/c/program.html | 73 |
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><stdlib.h></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><stddef.h></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><stdlib.h></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><signal.h></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><setjmp.h></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 <setjmp.h> (p: 191-192) </li> +<li> 7.14 Signal handling <signal.h> (p: 193-195) </li> +<li> 7.22 General utilities <stdlib.h> (p: 248-262) </li> +<li> 7.31.7 Signal handling <signal.h> (p: 332) </li> +<li> 7.31.12 General utilities <stdlib.h> (p: 333) </li> +</ul> +<li> C11 standard (ISO/IEC 9899:2011): </li> +<ul> +<li> 7.13 Nonlocal jumps <setjmp.h> (p: 262-264) </li> +<li> 7.14 Signal handling <signal.h> (p: 265-267) </li> +<li> 7.22 General utilities <stdlib.h> (p: 340-360) </li> +<li> 7.31.7 Signal handling <signal.h> (p: 455) </li> +<li> 7.31.12 General utilities <stdlib.h> (p: 456) </li> +</ul> +<li> C99 standard (ISO/IEC 9899:1999): </li> +<ul> +<li> 7.13 Nonlocal jumps <setjmp.h> (p: 243-245) </li> +<li> 7.14 Signal handling <signal.h> (p: 246-248) </li> +<li> 7.20 General utilities <stdlib.h> (p: 306-324) </li> +<li> 7.26.6 Signal handling <signal.h> (p: 401) </li> +<li> 7.26.10 General utilities <stdlib.h> (p: 402) </li> +</ul> +<li> C89/C90 standard (ISO/IEC 9899:1990): </li> +<ul> +<li> 4.6 NON-LOCAL JUMPS <setjmp.h> </li> +<li> 4.7 SIGNAL HANDLING <signal.h> </li> +<li> 4.10 GENERAL UTILITIES <stdlib.h> </li> +<li> 4.13.5 Signal handling <signal.h> </li> +<li> 7.13.7 General utilities <stdlib.h> </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"> + © 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> |
