home *** CD-ROM | disk | FTP | other *** search
-
- WAIT(2) UNIX Programmer's Manual WAIT(2)
-
- NNAAMMEE
- wwaaiitt, wwaaiittppiidd, wwaaiitt44, wwaaiitt33 - wait for process terminatation
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
- ##iinncclluuddee <<ssyyss//wwaaiitt..hh>>
-
- _p_i_d___t
- wwaaiitt(_i_n_t _*_s_t_a_t_u_s)
-
- ##iinncclluuddee <<ssyyss//ttiimmee..hh>>
- ##iinncclluuddee <<ssyyss//rreessoouurrccee..hh>>
-
- _p_i_d___t
- wwaaiittppiidd(_p_i_d___t _w_p_i_d, _i_n_t _*_s_t_a_t_u_s, _i_n_t _o_p_t_i_o_n_s)
-
- _p_i_d___t
- wwaaiitt33(_i_n_t _*_s_t_a_t_u_s, _i_n_t _o_p_t_i_o_n_s, _s_t_r_u_c_t _r_u_s_a_g_e _*_r_u_s_a_g_e)
-
- _p_i_d___t
- wwaaiitt44(_p_i_d___t _w_p_i_d, _i_n_t _*_s_t_a_t_u_s, _i_n_t _o_p_t_i_o_n_s, _s_t_r_u_c_t _r_u_s_a_g_e _*_r_u_s_a_g_e)
-
- DDEESSCCRRIIPPTTIIOONN
- The wwaaiitt() function suspends execution of its calling process until
- _s_t_a_t_u_s information is available for a terminated child process, or a sig
- nal is received. On return from a successful wwaaiitt() call, the _s_t_a_t_u_s
- area contains termination information about the process that exited as
- defined below.
-
- The wwaaiitt44() call provides a more general interface for programs that need
- to wait for certain child processes, that need resource utilization
- statistics accummulated by child processes, or that require options. The
- other wait functions are implemented using wwaaiitt44().
-
- The _w_p_i_d parameter specifies the set of child processes for which to
- wait. If _w_p_i_d is 1, the call waits for any child process. If _w_p_i_d is
- 0, the call waits for any child process in the process group of the
- caller. If _w_p_i_d is greater than zero, the call waits for the process
- with process id _w_p_i_d. If _w_p_i_d is less than 1, the call waits for any
- process whose process group id equals the absolute value of _w_p_i_d.
-
- The _s_t_a_t_u_s parameter is defined below. The _o_p_t_i_o_n_s parameter contains
- the bitwise OR of any of the following options. The WNOHANG option is
- used to indicate that the call should not block if there are no processes
- that wish to report status. If the WUNTRACED option is set, children of
- the current process that are stopped due to a SIGTTIN, SIGTTOU, SIGTSTP,
- or SIGSTOP signal also have their status reported.
-
- If _r_u_s_a_g_e is nonzero, a summary of the resources used by the terminated
- process and all its children is returned (this information is currently
- not available for stopped processes).
-
- When the WNOHANG option is specified and no processes wish to report sta
- tus, wwaaiitt44() returns a process id of 0.
-
- The wwaaiittppiidd() call is identical to wwaaiitt44() with an _r_u_s_a_g_e value of zero.
- The older wwaaiitt33() call is the same as wwaaiitt44() with a _w_p_i_d value of 1.
-
- The following macros may be used to test the manner of exit of the pro
- cess. One of the first three macros will evaluate to a nonzero (true)
-
-
- value:
-
- WWIIFFEEXXIITTEEDD(_s_t_a_t_u_s)
- True if the process terminated normally by a call to _exit(2) or
- exit(2).
-
- WWIIFFSSIIGGNNAALLEEDD(_s_t_a_t_u_s)
- True if the process terminated due to receipt of a signal.
-
- WWIIFFSSTTOOPPPPEEDD(_s_t_a_t_u_s)
- True if the process has not terminated, but has stopped and can
- be restarted. This macro can be true only if the wait call spec
- ified the WUNTRACED option or if the child process is being
- traced (see ptrace(2)).
-
- Depending on the values of those macros, the following macros produce the
- remaining status information about the child process:
-
- WWEEXXIITTSSTTAATTUUSS(_s_t_a_t_u_s)
- If WWIIFFEEXXIITTEEDD(_s_t_a_t_u_s) is true, evaluates to the loworder 8 bits
- of the argument passed to _exit(2) or exit(2) by the child.
-
- WWTTEERRMMSSIIGG(_s_t_a_t_u_s)
- If WWIIFFSSIIGGNNAALLEEDD(_s_t_a_t_u_s) is true, evaluates to the number of the
- signal that caused the termination of the process.
-
- WWCCOORREEDDUUMMPP(_s_t_a_t_u_s)
- If WWIIFFSSIIGGNNAALLEEDD(_s_t_a_t_u_s) is true, evaluates as true if the termina
- tion of the process was accompanied by the creation of a core
- file containing an image of the process when the signal was re
- ceived.
-
- WWSSTTOOPPSSIIGG(_s_t_a_t_u_s)
- If WWIIFFSSTTOOPPPPEEDD(_s_t_a_t_u_s) is true, evaluates to the number of the
- signal that caused the process to stop.
-
- NNOOTTEESS
- See sigaction(2) for a list of termination signals. A status of 0 indi
- cates normal termination.
-
- If a parent process terminates without waiting for all of its child pro
- cesses to terminate, the remaining child processes are assigned the par
- ent process 1 ID (the init process ID).
-
- If a signal is caught while any of the wwaaiitt() calls is pending, the call
- may be interrupted or restarted when the signalcatching routine returns,
- depending on the options in effect for the signal; see intro(2), System
- call restart.
-
- RREETTUURRNN VVAALLUUEESS
- If wwaaiitt() returns due to a stopped or terminated child process, the pro
- cess ID of the child is returned to the calling process. Otherwise, a
- value of 1 is returned and _e_r_r_n_o is set to indicate the error.
-
- If wwaaiitt44(), wwaaiitt33() or wwaaiittppiidd() returns due to a stopped or terminated
- child process, the process ID of the child is returned to the calling
- process. If there are no children not previously awaited, 1 is returned
- with _e_r_r_n_o set to [ECHILD]. Otherwise, if WNOHANG is specified and there
- are no stopped or exited children, 0 is returned. If an error is detect
- ed or a caught signal aborts the call, a value of 1 is returned and
- _e_r_r_n_o is set to indicate the error.
-
- EERRRROORRSS
- WWaaiitt() will fail and return immediately if:
-
- [ECHILD] The calling process has no existing unwaitedfor child pro
-
- cesses.
-
- [EFAULT] The _s_t_a_t_u_s or _r_u_s_a_g_e arguments point to an illegal address.
- (May not be detected before exit of a child process.)
-
- [EINTR] The call was interrupted by a caught signal, or the signal
- did not have the SA_RESTART flag set.
-
- SSTTAANNDDAARRDDSS
- The wwaaiitt() and wwaaiittppiidd() functions are defined by POSIX; wwaaiitt44() and
- wwaaiitt33() are not specified by POSIX. The WWCCOORREEDDUUMMPP() macro and the abili
- ty to restart a pending wwaaiitt() call are extensions to the POSIX inter
- face.
-
- SSEEEE AALLSSOO
- exit(2), sigaction(2)
-
- HHIISSTTOORRYY
- A wwaaiitt function call appeared in Version 6 AT&T UNIX.
-
- 4th Berkeley Distribution March 10, 1991 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-