Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

acct(2)

intro(2)

plock(2)

semop(2)

sigaction(2)

signal(2)

times(2)

wait(2)

atexit(3C)





   exit(2)                                                             exit(2)


   NAME
         exit, _exit - terminate process

   SYNOPSIS
         #include <stdlib.h>

         void exit(int status);

         #include <unistd.h>

         void _exit(int status);

   DESCRIPTION
         _exit terminates the calling process with the following consequences:

               All of the file descriptors, directory streams and message
               catalogue descriptors open in the calling process are closed.

               A SIGCHLD signal is sent to the calling process's parent
               process.

               If the parent process of the calling process has not specified
               the SA_NOCLDWAIT flag [see sigaction(2)], 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 the times system call.

               The parent process ID of all of the calling process's existing
               child processes  and zombie processes is set to 1.  This means
               the initialization process [see intro(2)] 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(2)], 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(2)].

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





   7/91                                                                 Page 1









   exit(2)                                                             exit(2)


               If the process is a controlling process, SIGHUP is sent to the
               foreground process group of its controlling terminal and its
               controlling terminal is deallocated.

               If the calling process has any stopped children whose process
               group will be orphaned when the calling process exits, or if
               the calling process is a member of a process group that will be
               orphaned when the calling process exits, that process group
               will be sent SIGHUP and SIGCONT signals.

         The C function exit(3C) calls any functions registered through the
         atexit function in the reverse order of their registration.  The
         function _exit circumvents all such functions and cleanup.

         The symbols EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h and
         may be used as the value of status to indicate successful or
         unsuccessful termination, respectively.

   SEE ALSO
         acct(2), intro(2), plock(2), semop(2), sigaction(2), signal(2),
         times(2), wait(2), atexit(3C).

   NOTES
         See signal(2) NOTES.





























   Page 2                                                                 7/91





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