April 23, 2002 EXIT 2

### NAME

_Exit,_exit - terminate the calling process

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```void` _Exit(```int status`)
```void` _exit(```int status`)

### DESCRIPTION

The _Exit(``) and _exit(``) functions are equivalent. They each terminate a process with the following consequences:

- All of the descriptors open in the calling process are closed. This may entail delays, for example, waiting for output to drain; a process in this state may not be killed, as it is already dying.

- If the parent process of the calling process has an outstanding wait(2) call or catches the ```SIGCHLD` signal, it is notified of the calling process's termination and the status is set as defined by wait(2).

- The parent process-ID of all of the calling process's existing child processes are set to 1; the initialization process (see the DEFINITIONS section of intro(2)) inherits each of these processes.

- If the termination of the process causes any process group to become orphaned (usually because the parents of all members of the group have now exited; see ``orphaned process group'' in intro(2)), and if any member of the orphaned group is stopped, the ```SIGHUP` signal and the ```SIGCONT` signal are sent to all members of the newly-orphaned process group.

- If the process is a controlling process (see intro(2)), the ```SIGHUP` signal is sent to the foreground process group of the controlling terminal, and all current access to the controlling terminal is revoked.

Most C programs call the library routine exit(3), which flushes buffers, closes streams, unlinks temporary files, etc., before calling _exit(``).

### RETURN VALUES

_Exit(``) and _exit(``) can never return.

### SEE ALSO

fork(2), sigaction(2), wait(2), exit(3)

### STANDARDS

The _exit(``) function conforms to ISO/IEC 9945-1:1990 (``POSIX.1'') . The _Exit(``) function conforms to ISO/IEC 9899:1999 (``ISO C99'') .