C process control

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

C process control refers to a group of functions in the standard library of the C programming language implementing basic process control operations.[1][2] 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

[edit | edit source]

The process control functions are defined in the stdlib.h header (cstdlib header in C++).

Function Description
Terminating
a program
abort causes abnormal program termination (without cleaning up)
exit causes normal program termination with cleaning up
_Exit causes normal program termination without cleaning up (C99)
atexit registers a function to be called on exit() invocation
quick_exit causes normal program termination without cleaning up, but with IO buffers flushed (C11)
at_quick_exit registers a function to be called on quick_exit() invocation
Communicating with
the environment
getenv accesses the list of the environment variables
system calls the host environment's command processor

Example

[edit | edit source]

The following is an example of communicating with the system environment in 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;
}

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]