Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages

OpenSolaris 2009.06 - man page for exit (opensolaris section 2)

exit(2) 				   System Calls 				  exit(2)

       exit, _Exit, _exit - terminate process

       #include <stdlib.h>

       void exit(int status);

       void _Exit(int status);

       #include <unistd.h>

       void _exit(int status);

       The  exit()  function  first  calls all functions registered by atexit(3C), in the reverse
       order of their registration, except that a function is called after any previously  regis-
       tered  functions that had already been called at the time it was registered. Each function
       is called as many times as it was registered. If, during the call to any such function,	a
       call  to  the longjmp(3C) function is made that would terminate the call to the registered
       function, the behavior is undefined.

       If a function registered by a call to atexit(3C) fails to return, the remaining registered
       functions are not called and the rest of the exit() processing is not completed. If exit()
       is called more than once, the effects are undefined.

       The exit() function then flushes all open streams with unwritten buffered data, closes all
       open streams, and removes all files created by tmpfile(3C).

       The  _Exit() and _exit() functions are functionally equivalent. They do not call functions
       registered with atexit(), do not call any registered signal handlers,  and  do  not  flush
       open streams.

       The  _exit(), _Exit(), and exit() functions terminate the calling process with the follow-
       ing consequences:

	   o	  All of the file descriptors, directory streams, conversion descriptors and mes-
		  sage catalogue descriptors open in the calling process are closed.

	   o	  If  the  parent  process  of	the  calling  process  is  executing  a wait(3C),
		  wait3(3C), waitid(2), or waitpid(3C), and has neither set its SA_NOCLDWAIT flag
		  nor set SIGCHLD to SIG_IGN, 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.  If the parent is not waiting, the child's status will be made available
		  to it when the parent subsequently executes wait(), wait3(), waitid(), or wait-

	   o	  If  the  parent  process  of	the  calling  process  is not executing a wait(),
		  wait3(), waitid(), or waitpid(), and has not set its SA_NOCLDWAIT flag, or  set
		  SIGCHLD to SIG_IGN, the calling process is transformed into a zombie process. A
		  zombie process is an inactive process and it will be deleted at some later time
		  when	its  parent  process  executes wait(), wait3(), waitid(), or waitpid(). A
		  zombie process 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 occu-
		  pies is partially overlaid with time accounting information (see  <sys/proc.h>)
		  to be used by the times(2) function.

	   o	  Termination  of a process does not directly terminate its children. The sending
		  of a SIGHUP signal as described below indirectly terminates  children  in  some

	   o	  A SIGCHLD will be sent to the parent process.

	   o	  The  parent process ID of all of the calling process's existing child processes
		  and zombie processes is set to 1. That is, these processes are inherited by the
		  initialization process (see Intro(2)).

	   o	  Each mapped memory object is unmapped.

	   o	  Each	attached  shared-memory  segment  is detached and the value of shm_nattch
		  (see shmget(2)) in the data structure associated with its shared memory  ID  is
		  decremented by 1.

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

	   o	  If the process is a controlling process, the SIGHUP signal will be sent to each
		  process  in  the foreground process group of the controlling terminal belonging
		  to the calling process.

	   o	  If the process is a controlling process, the	controlling  terminal  associated
		  with	the session is disassociated from the session, allowing it to be acquired
		  by a new controlling process.

	   o	  If the exit of the process causes a process group to become  orphaned,  and  if
		  any member of the newly-orphaned process group is stopped, then a SIGHUP signal
		  followed by a SIGCONT signal will be sent to each process in the newly-orphaned
		  process group.

	   o	  If the parent process has set its SA_NOCLDWAIT flag, or set SIGCHLD to SIG_IGN,
		  the status will be discarded, and the lifetime of the calling process will  end

	   o	  If  the  process  has  process, text or data locks, an UNLOCK is performed (see
		  plock(3C) and memcntl(2)).

	   o	  All open named semaphores in the process are closed as if by appropriate  calls
		  to  sem_close(3C).  All  open message queues in the process are closed as if by
		  appropriate calls to mq_close(3C). Any outstanding asynchronous I/O  operations
		  may be cancelled.

	   o	  An accounting record is written on the accounting file if the system's account-
		  ing routine is enabled (see acct(2)).

	   o	  An extended accounting record is written to  the  extended  process  accounting
		  file	if the system's extended process accounting facility is enabled (see acc-

	   o	  If the current process is the last process within its task and if the  system's
		  extended  task  accounting  facility	is enabled (see acctadm(1M)), an extended
		  accounting record is written to the extended task accounting file.

       These functions do not return.

       No errors are defined.

       Normally applications should use exit() rather than _exit().

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Committed 		   |
       |MT-Level		     |See below.		   |
       |Standard		     |See standards(5). 	   |

       The _exit() and _Exit() functions are Async-Signal-Safe.

       acctadm(1M), Intro(2), acct(2), close(2), memcntl(2), semop(2),	shmget(2),  sigaction(2),
       times(2),  waitid(2),  atexit(3C),  fclose(3C),	mq_close(3C), plock(3C), signal.h(3HEAD),
       tmpfile(3C), wait(3C), wait3(3C), waitpid(3C), attributes(5), standards(5)

SunOS 5.11				    5 Feb 2008					  exit(2)

All times are GMT -4. The time now is 01:01 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password