waitpid man page on HP-UX

Man page or keyword search:  
man Server   10987 pages
apropos Keyword Search (all sections)
Output format
HP-UX logo
[printable version]

wait(2)								       wait(2)

NAME
       wait(), waitpid() - wait for child process to stop or terminate

SYNOPSIS

DESCIPTION
       The  and	 functions  obtain status information pertaining to one of the
       caller's child processes.  Various options permit status information to
       be  obtained  for  child processes that have terminated or stopped.  If
       status information is available for two or more	child  processes,  the
       order in which their status is reported is unspecified.

       The  function  suspends	execution  of  the calling thread until status
       information for one of the terminated child processes  of  the  calling
       process	is  available,	or  until delivery of a signal whose action is
       either to execute  a  signal-catching  function	or  to	terminate  the
       process.	  If more than one thread is suspended in or awaiting termina‐
       tion of the same process, exactly one thread returns the process status
       at  the	time of the target process termination.	 If status information
       is available prior to the call to return is immediate.

       The function is equivalent to if the pid argument is  and  the  options
       argument	 is  0.	  Otherwise, its behavior is modified by the values of
       the pid and options arguments.

       Note that if the parent process	terminates  without  waiting  for  its
       child processes to terminate, these processes are adopted by and recog‐
       nize the initialization process as their parent.

       The pid argument specifies the child  processes	for  which  status  is
       requested.   The	 function  only	 returns the status of a child process
       from this set:

	 ·  If pid is equal to status is requested for any child process.   In
	    this respect, is equivalent to

	 ·  If	pid is greater than 0, it specifies the process ID of a single
	    child process for which status is requested.

	 ·  If pid is 0, status is  requested  for  any	 child	process	 whose
	    process group ID is equal to that of the calling process.

	 ·  If	pid  is	 less  than  status is requested for any child process
	    whose process group ID is equal to the absolute value of pid.

       The stat_loc argument is the address  where  status  of	the  specified
       child processes is placed.

       The  options  argument  is constructed from the bitwise-inclusive OR of
       zero or more of the following flags defined in the header file.

       The		   function reports the status of any continued	 child
			   process  specified by pid whose status has not been
			   reported since it  continued	 from  a  job  control
			   stop.

       The		   function  does not suspend execution of the calling
			   thread if status is not immediately	available  for
			   one of the child processes specified by pid.

       HP-UX EXTENSION:	   Keep	 the  process  whose  status  is  returned  in
			   stat_loc in a waitable state.  The process  may  be
			   waited  for	again with identical results, provided
			   the state of the  process  doesn't  change  in  the
			   interim.

       The status of any child processes specified by
			   pid	that are stopped, and whose status has not yet
			   been reported since they stopped, is also  reported
			   to the requesting process.

			   HP-UX  EXTENSION:  If and only if this flag is set,
			   or (see wait3(2)) returns information on  child  or
			   attached  processes	that  are stopped because they
			   received a or signal, and whose status has not  yet
			   been	 reported.  Regardless of this flag, status is
			   returned for child or attached processes that  have
			   terminated or are stopped and traced and whose sta‐
			   tus has not yet been reported.

       If the calling process has the signal action set or has set to and  the
       process	has no unwaited-for children that were transformed into zombie
       processes, the calling thread blocks until all of the children  of  the
       process	containing  the calling thread terminate, and and fail and set
       to

       If or return because the status of a child process is available,	 these
       functions  return a value equal to the process ID of the child process.
       In this case, if the value of the  argument  stat_loc  is  not  a  null
       pointer,	 information is stored in the location pointed to by stat_loc.
       The value stored at the location pointed to by stat_loc	is  0  if  and
       only  if	 the  status  returned is from a terminated child process that
       terminated by one of the following means:

	 1. The process returned 0 from main().

	 2. The process called _exit() or exit() with a status argument of 0.

	 3. The process was terminated because the last thread in the  process
	    terminated.

       Previous	 versions  of HP-UX documented the bit encodings of the status
       returned by which could be interpreted directly and applications	 doing
       this will continue to work correctly.  However, new applications should
       use the provided status interpretation macros shown below  for  maximum
       portability.

   Status Interpretation Macros
       Regardless  of its value, this information may be interpreted using the
       following macros, which are defined in and evaluate to integral expres‐
       sions;  the  stat_val  argument	is  the	 integer  value	 pointed to by
       stat_loc.
       HP-UX EXTENSION: If the value of is nonzero, this macro evaluates to  a
       nonzero value if a "core image" dump was produced (see signal(5)).

       If the value of
	      is  nonzero, this macro evaluates to the low-order 8 bits of the
	      status argument that the child process passed to or or the value
	      the child process returned from

       Evaluates to a nonzero value if
	      status  was returned for a child process that has continued from
	      a job control stop.

       Evaluates to a nonzero value if
	      status was reported for a child  process	that  terminated  nor‐
	      mally.

       Evaluates to a nonzero value if
	      status  was  reported for a child process that terminated due to
	      the receipt of a signal that was not caught (see

       Evaluates to a nonzero value if
	      status was reported  for	a  child  process  that	 is  currently
	      stopped.

       If the value of
	      is  nonzero,  this  macro	 evaluates to the number of the signal
	      that caused the child process to stop.

       If the value of
	      is nonzero, this macro evaluates to the  number  of  the	signal
	      that caused the termination of the child process.

       If  the information pointed to by stat_loc was stored by a call to that
       specified the flag and did not specify the flag,	 exactly  one  of  the
       macros and evaluates to a nonzero value.

       If  the information pointed to by stat_loc was stored by a call to that
       specified the and flags, exactly one of the macros and evaluates	 to  a
       nonzero value.

       If  the information pointed to by stat_loc was stored by a call to that
       did not specify the or flags, or by a  call  to	the  wait()  function,
       exactly one of the macros and evaluates to a nonzero value.

       If  the information pointed to by stat_loc was stored by a call to that
       did not specify the flag and specified the lag, or by  a	 call  to  the
       wait()  function,  exactly one of the macros and evaluates to a nonzero
       value.

       There may be additional	implementation-dependent  circumstances	 under
       which  and  report  status.   This  does	 not  occur unless the calling
       process or one of its child processes explicitly makes use  of  a  non‐
       standard	 extension.  In these cases the interpretation of the reported
       status is implementation-defined.

       If a parent process terminates without waiting for  all	of  its	 child
       processes  to  terminate,  the remaining child processes are assigned a
       new parent process ID corresponding to an implementation-defined system
       process.

       In earlier versions of HP-UX, the status interpretation macros and have
       the same definitions as the correspondingly named macros in BSD 4.3 and
       earlier	systems, so existing applications that depend on these defini‐
       tions will continue to work correctly.  However, if the application  is
       recompiled,  the	 feature  test macro must be turned on so that the old
       definitions of these macros  override  the  new	definitions  of	 these
       macros  that are in effect by default.  The only difference between the
       old and new definitions is the argument typing.	Type union is used  in
       the BSD definitions while type int is used in the default definitions.

RETURN VALUE
       If or returns because the status of a child process is available, these
       functions return a value equal to the process ID of the	child  process
       for which status is reported.

       If  or  returns due to the delivery of a signal to the calling process,
       is returned and is set to

       If was invoked with set in options, it has at least one	child  process
       specified  by  pid for which status is not available, and status is not
       available for any process specified by pid, 0 is returned.   Otherwise,
       is returned, and is set to indicate the error.

ERRORS
       If the call fails, is set to one of the following values:

       The calling process has no existing unwaited-for child processes.

       The	      stat_loc	argument points to an illegal address or prob‐
		      lems were encountered in the  reporting  of  the	status
		      information  for the specified child process.  Note that
		      the reliable detection of this error is  implementation-
		      dependent.

       The function was interrupted by a signal.
		      The  value  of the location pointed to by stat_loc argu‐
		      ment is undefined.

       If the call fails, is set to one of the following values:

       The process specified by
		      pid does not exist or is not  a  child  of  the  calling
		      process,	or the process group specified by pid does not
		      exist or does not have any  member  process  that	 is  a
		      child of the calling process.

       The	      stat_loc	argument points to an illegal address or prob‐
		      lems were encountered in the  reporting  of  the	status
		      information  for the specified child process.  Note that
		      the reliable detection of this error is  implementation-
		      dependent.

       The	      was  interrupted by a signal.  The value of the location
		      pointed to by stat_loc is undefined.

       The	      options argument is not valid.

WARNINGS
       HP-UX EXTENSION: The operation of is affected if the signal is  set  to
       (see  the  section  of  signal(5)).   Signal handlers that cause system
       calls to be restarted can affect the  condition	(see  bsdproc(3C)  and
       sigaction(2)).

APPLICATION USAGE
   Threads Considerations
       In a multithreaded application, only the calling thread is suspended by
       call.

       and will not return until all threads in the process have  reached  the
       desired	state.	 For  example,	the  calls  will  not return until all
       threads have terminated.	 If the or options are specified for the call,
       it will not return until all threads have stopped or continued, respec‐
       tively.

SEE ALSO
       Exit  conditions	 in  sh(1),  exec(2),  exit(2),	  fork(2),   pause(2),
       ttrace(2), wait3(2), waitid(2), signal(5),

AUTHOR
       and were developed by HP, AT&T and the University of California, Berke‐
       ley.

STANDARDS CONFORMANCE
								       wait(2)
[top]

List of man pages available for HP-UX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net