Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     EXIT(S)                   UNIX System V                   EXIT(S)



     Name
          exit, _exit - terminate process

     Syntax
          void exit (status)
          int status;
          void _exit (status)
          int status;

     Description
          The exit system call terminates the calling process with the
          following consequences:

          All of the file descriptors open in the calling process are
          closed.

          If the parent process of the calling process is executing a
          wait, it is notified of the calling process's termination
          and the low order eight bits (that is, bits 0377) of status
          are made available to it (see wait(S)).

          If the parent process of the calling process is not
          executing a wait, the calling process is transformed into a
          zombie process.  A zombie process is a process that only
          occupies a slot in the process table.  It has no other space
          allocated either in user or kernel space.  The process table
          slot that it occupies is partially overlaid with time
          accounting information (see <sys/proc.h>) to be used by
          times.

          The parent process ID of all of the calling processes'
          existing child processes and zombie processes is set to 1.
          This means the initialization process (see intro(S))
          inherits each of these processes.

          Each attached shared memory segment is detached and the
          value of shm_nattach in the data structure associated with
          its shared memory identifier is decremented by 1.

          For each semaphore for which the calling process has set a
          semadj value (see semop(S)), that semadj value is added to
          the semval of the specified semaphore.

          If the process has a process, text, or data lock, an unlock
          is performed (see plock(S)).

          An accounting record is written on the accounting file if
          the system's accounting routine is enabled (see acct(S)).

          If the process ID, tty group ID, and process group ID of the
          calling process are equal, the SIGHUP signal is sent to each
          process that has a process group ID equal to that of the
          calling process.

          A death of child signal is sent to the parent.

          The C function exit may cause cleanup actions before the
          process exits.  The function _exit circumvents all cleanup.

     See Also
          acct(S), intro(S), plock(S), semop(S), signal(S), sigset(S),
          wait(S)

     Diagnostics
          None.  There can be no return from an exit system call.

     Standards Conformance
          _exit is conformant with:
          The X/Open Portability Guide II of January 1987;
          IEEE POSIX Std 1003.1-1988 with C Standard Language-
          Dependent System Support;
          and NIST FIPS 151-1.

          exit is conformant with:
          The X/Open Portability Guide II of January 1987;
          ANSI X3.159-198X C Language Draft Standard, May 13, 1988;
          IEEE POSIX Std 1003.1-1988 with C Standard Language-
          Dependent System Support;
          and NIST FIPS 151-1.

                                             (printed 6/20/89)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026