Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ exit(2) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

_lwp_exit(2)

acct(2)

atexit(3C)

intro(2)

plock(2)

semop(2)

sigaction(2)

signal(2)

times(2)

wait(2)






       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 an entry in the process list.  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)].



                           Copyright 1994 Novell, Inc.               Page 1













      exit(2)                                                      exit(2)


                  An accounting record is written on the accounting file
                  if the system's accounting routine is enabled [see
                  acct(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 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.  The
            low-order 8 bits of status is available through wait(2) (and
            similar functions).

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

      NOTICES
         Considerations for Threads Programming
            The _exit system call terminates the containing process.  This
            implies the termination of all threads.

         Considerations for Lightweight Processes
            The termination of the process also implies the termination of
            all LWPs contained by that process.











                          Copyright 1994 Novell, Inc.               Page 2








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