*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> exit (2)              
Title
Content
Arch
Section
 

Contents


 exit(2)                                                             exit(2)




 NAME    [Toc]    [Back]
      exit, _exit - terminate process

 SYNOPSIS    [Toc]    [Back]
      #include <stdlib.h>

      void exit(int status);

      #include <unistd.h>

      void _exit(int status);

 DESCRIPTION    [Toc]    [Back]
      exit() terminates the calling process and passes status to the system
      for inspection, see wait(2).  Returning from main in a C program has
      the same effect as exit(); the status value is the function value
      returned by main (this value is undefined if main does not take care
      to return a value or to call exit() explicitly).

      If the calling process is multithreaded, all threads/lightweight
      process in the process will be terminated.

      exit() cannot return to its caller.  The result of an exit() call
      during exit processing is undefined.

      The functions exit() and _exit(), are equivalent, except that exit()
      calls functions registered by atexit() and flushes standard I/O
      buffers, while _exit() does not.  Both exit() and _exit() terminate
      the calling process with the following consequences.  The exact order
      of these consequences is unspecified.

           Functions registered by atexit() (see atexit(3)) are called in
           reverse order of registration.

           All file descriptors open in the calling process are closed.

           All files created by tmpfile() are removed (see tmpfile(3S)).

           If the parent process of the calling process is executing a
           wait(), wait3(), or waitpid(), it is notified of the calling
           process's termination, and the low-order eight bits; i.e., bits
           0377 of status are made available to it (see wait(2)).

           If the parent process of the calling process is not executing a
           wait(), wait3(), or waitpid(), and does not have SIGCLD set to
           SIG_IGN, 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.  Time accounting information is recorded
           for use by times() (see times(2)).




 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 exit(2)                                                             exit(2)




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

           Threads/LWPs terminated by a call to exit() shall not invoke
           their cancellation cleanup handlers or their thread specific data
           destructor functions.

           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 (see shmop(2)).

           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)).

           A SIGCHLD signal is sent to the parent process.

           If the calling process is a controlling process, the SIGHUP
           signal is sent to each process in the foreground process group of
           the controlling terminal belonging to the calling process.  The
           controlling terminal associated with the session is disassociated
           from the session, allowing it to be acquired by a new controlling
           process.

           If the exit of the calling process causes a process group to
           become orphaned, and if any member of the newly-orphaned process
           group is stopped, all processes in the newly-orphaned process
           group are sent SIGHUP and SIGCONT signals.

           If the current process has any child processes that are being
           traced, they are sent a SIGKILL signal.

 AUTHOR    [Toc]    [Back]
      exit() was developed by HP, AT&T, and the University of California,
      Berkeley.

 SEE ALSO    [Toc]    [Back]
      acct(2), plock(2), pthread_cancel(3T), pthread_exit(3T),
      pthread_key_create(3T), semop(2), shmop(2), times(2), vfork(2),
      wait(2), signal(5), sh(1), see exit conditions ($?).

 STANDARDS CONFORMANCE    [Toc]    [Back]
      exit(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI



 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003






 exit(2)                                                             exit(2)




      C

      _exit(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1


 Hewlett-Packard Company            - 3 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
kill HP-UX send a signal to a process; terminate a process
_exit Tru64 Terminate a process
exit Tru64 Terminate a process
atexit Tru64 Terminate a process
_exit OpenBSD terminate the calling process
kill OpenBSD terminate or signal a process
_exit FreeBSD terminate the calling process
kill FreeBSD terminate or signal a process
_exit NetBSD terminate the calling process
_exit Linux terminate the current process
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service