waitpid(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

waitpid(3c)

waitpid(3C)              Standard C Library Functions              waitpid(3C)

NAME
       waitpid - wait for child process to change state

SYNOPSIS
       #include <sys/types.h>
       #include <sys/wait.h>

       pid_t waitpid(pid_t pid, int *stat_loc, int options);

DESCRIPTION
       The waitpid() function will suspend execution of the calling thread un‐
       til  status  information  for  one of its terminated child processes is
       available, or until delivery of a signal whose action is either to exe‐
       cute a signal-catching function or to terminate the process, or an  er‐
       ror  occurs.  If  more  than  one  thread  is  suspended  in waitpid(),
       wait(3C), or waitid(2) awaiting termination of the  same  process,  ex‐
       actly one thread will return the process status at the time of the tar‐
       get  process  termination.  If status information is available prior to
       the call to waitpid(), return will be immediate.


       The pid argument specifies a set of child processes for which status is
       requested, as follows:

           o      If pid is less than (pid_t)−1, status is requested  for  any
                  child  process  whose  process  group ID is equal to the ab‐
                  solute value of pid.


           o      If pid is equal to (pid_t)−1, status is  requested  for  any
                  child process.


           o      If  pid  is  equal  to  (pid_t)0 status is requested for any
                  child process whose process group ID is equal to that of the
                  calling process.


           o      If pid is greater than (pid_t)0, it specifies the process ID
                  of the child process for which status is requested.



       One instance of a SIGCHLD signal is queued for each child process whose
       status has changed. If waitpid() returns because the status of a  child
       process  is  available,  and  WNOWAIT was not specified in options, any
       pending SIGCHLD signal associated with the process  ID  of  that  child
       process is discarded. Any other pending SIGCHLD signals remain pending.


       If  the  calling  process  has  SA_NOCLDWAIT  set or has SIGCHLD set to
       SIG_IGN and the process has no unwaited children that were  transformed
       into  zombie  processes, it will block until all of its children termi‐
       nate, and waitpid() will fail and set errno to ECHILD.


       If waitpid() returns because the status of a child  process  is  avail‐
       able,  then  that  status  may  be evaluated with the macros defined by
       wait.h(3HEAD). If the calling process had specified a non-zero value of
       stat_loc, the status of the child process will be stored in  the  loca‐
       tion pointed to by stat_loc.


       The  options  argument  is constructed from the bitwise-inclusive OR of
       zero  or  more  of  the  following  flags,  defined   in   the   header
       <sys/wait.h>:

       WCONTINUED    The  status  of  any continued child process specified by
                     pid, whose status has not been reported since it  contin‐
                     ued, is also reported to the calling process.


       WNOHANG       The  waitpid() function will not suspend execution of the
                     calling process if status is  not  immediately  available
                     for one of the child processes specified by pid.


       WNOWAIT       Keep  the process whose status is returned in stat_loc in
                     a waitable state. The process may  be  waited  for  again
                     with identical results.


       WUNTRACED     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 calling
                     process. WSTOPPED is a synonym for WUNTRACED.


RETURN VALUES
       If waitpid() returns because the status of a child  process  is  avail‐
       able,  it  returns a value equal to the process ID of the child process
       for which status is reported. If waitpid() returns due to the  delivery
       of  a signal to the calling process, −1 is returned and errno is set to
       EINTR. If waitpid() was invoked with WNOHANG set in options, it has  at
       least one child process specified by pid for which status is not avail‐
       able,  and  status  is  not available for any process specified by pid,
       then 0 is returned. Otherwise, −1 is returned and errno is set to indi‐
       cate the error.

ERRORS
       The waitpid() function will fail if:

       ECHILD    The process or process group specified by pid does not  exist
                 or  is  not a child of the calling process or can never be in
                 the states specified by options.


       EINTR     The waitpid() function was interrupted due to the receipt  of
                 a signal sent by the calling process.


       EINVAL    An invalid value was specified for options.


USAGE
       With  options equal to 0 and pid equal to (pid_t)−1, waitpid() is iden‐
       tical to wait(3C). The waitpid() function is implemented as a  call  to
       the more general waitid(2) function.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab()  box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Interface  StabilityCommitted  _  MT-LevelAsync-Signal-
       Safe _ StandardSee standards(7).


SEE ALSO
       exec(2),    exit(2),   fork(2),   Intro(2),   pause(2),   sigaction(2),
       ptrace(3C), signal(3C), wait(3C), siginfo.h(3HEAD), wait.h(3HEAD),  at‐
       tributes(7), standards(7)

HISTORY
       The waitpid() function has been included in all Sun and Oracle releases
       of Solaris.

Oracle Solaris 11.4               27 Aug 2025                      waitpid(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3