Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Apropos / Subsearch:
optional field

 exit(2)							     exit(2)

      exit, _exit - terminate process

      #include <&lt&lt&lt;stdlib.h>&gt&gt&gt;

      void exit(int status);

      #include <&lt&lt&lt;unistd.h>&gt&gt&gt;

      void _exit(int status);

      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(2)) 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 Release 11i: November 2000

 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

	   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

	   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.

      exit() was developed by HP, AT&T, and the University of California,

      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 ($?).

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

 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000

 exit(2)							     exit(2)


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

 Hewlett-Packard Company	    - 3 -   HP-UX Release 11i: November 2000