{{Short description|Functions of the C standard software library}} {{Use dmy dates|date=January 2022}} {{C Standard Library}}
'''C process control''' refers to a group of functions in the standard library of the C programming language implementing basic process control operations.<ref>{{cite book|last=Crawford|first=Tony|author2=Peter Prinz|title=C in a Nutshell|publisher=O'Reilly|location=§16.11 – ''Process Control''|date=December 2005|pages=618|isbn=0-596-00697-7}}</ref><ref>{{cite book | url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf | title=ISO/IEC 9899:1999 specification | at=p. 315, § 7.20.4 "Communication with the environment" | accessdate=25 November 2011}}</ref> The process control operations include actions such as termination of the program with various levels of cleanup, running an external command interpreter or accessing the list of the environment operations.
==Overview of functions==
The process control functions are defined in the <code>stdlib.h</code> header (<code>cstdlib</code> header in C++).
{| class="wikitable" style="font-size:0.85em" ! ! Function ! Description |- ! rowspan=6 | Terminating <br>a program | {{anchor|abort}}<code>[http://en.cppreference.com/w/c/program/abort abort]</code> | causes abnormal program termination (without cleaning up) |- | {{anchor|exit}}<code>[http://en.cppreference.com/w/c/program/exit exit]</code> | causes normal program termination with cleaning up |- | {{anchor|_Exit}}<code>[http://en.cppreference.com/w/c/program/_Exit _Exit]</code> | causes normal program termination without cleaning up (C99) |- | {{anchor|atexit}}<code>[http://en.cppreference.com/w/c/program/atexit atexit]</code> | registers a function to be called on exit() invocation |- | {{anchor|quick_exit}}<code>[http://en.cppreference.com/w/c/program/quick_exit quick_exit]</code> | causes normal program termination without cleaning up, but with IO buffers flushed (C11) |- | {{anchor|quick_exit}}<code>[http://en.cppreference.com/w/c/program/at_quick_exit at_quick_exit]</code> | registers a function to be called on quick_exit() invocation |- ! rowspan=2 | Communicating with<br>the environment | {{anchor|getenv}}<code>[http://en.cppreference.com/w/c/program/getenv getenv]</code> | accesses the list of the environment variables |- | {{anchor|system}}<code>[http://en.cppreference.com/w/c/program/system system]</code> | calls the host environment's command processor |}
==Example== The following is an example of communicating with the system environment in C. <syntaxhighlight lang="c"> #include <stdio.h> #include <stdlib.h>
int main() { char* path = getenv("PATH"); if (!path) { fprintf(stderr, "PATH environment variable not found.\n"); } else { printf("PATH variable: %s\n", path); }
printf("Listing current directory contents using system(\"ls\"):\n"); int ret = system("ls");
if (ret == -1) { fprintf(stderr, "system() call failed!"); }
return 0; } </syntaxhighlight>
==References== {{reflist}}
==External links== {{wikibooks|C Programming/C Reference}} {{clear}}
Category:C standard library