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

개요

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

wait(3c)

Standard C Library Functions                                          wait(3C)



NAME
       wait - wait for child process to stop or terminate

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

       pid_t wait(int *stat_loc);

DESCRIPTION
       The  wait() function will suspend execution of the calling thread until
       status information for one of its terminated child processes is  avail‐
       able, 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 wait(), waitpid(3C), or waitid(2) awaiting ter‐
       mination of the same  process,  exactly  one  thread  will  return  the
       process status at the time of the target process termination. If status
       information is available prior to the call to wait(),  return  will  be
       immediate.


       If  wait()  returns because the status of a child process is available,
       it returns the process ID of the child process. If the calling  process
       specified  a  non-zero  value  for  stat_loc,  the  status of the child
       process is stored in the location pointed to by stat_loc.  That  status
       can  be evaluated with the macros described on the wait.h(3HEAD) manual
       page.


       In the following, status is the object pointed to by stat_loc:

           o      If the child process terminated due to an _exit() call,  the
                  low  order  8  bits of status will be 0 and the high order 8
                  bits will contain the low order 7 bits of the argument  that
                  the child process passed to _exit(); see exit(2).


           o      If  the  child  process terminated due to a signal, the high
                  order 8 bits of status will be 0 and  the  low  order  7bits
                  will contain the number of the signal that caused the termi‐
                  nation. In addition, if WCOREFLG is set, a "core image" will
                  have been produced; see signal.h(3HEAD) and wait.h(3HEAD).



       One instance of a SIGCHLD signal is queued for each child process whose
       status has changed. If wait() returns because the  status  of  a  child
       process  is  available,  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 wait() will fail and set errno to ECHILD.


       If a parent process terminates without waiting for its child  processes
       to  terminate, the parent process ID of each child process is set to 1,
       with the initialization process inheriting  the  child  processes;  see
       Intro(2).

RETURN VALUES
       When  wait()  returns due to a terminated child process, the process ID
       of the child is returned to  the  calling  process.  Otherwise,  −1  is
       returned and errno is set to indicate the error.

ERRORS
       The wait() function will fail if:

       ECHILD    The  calling  process has no existing unwaited-for child pro‐
                 cesses.


       EINTR     The function was interrupted by a signal.


USAGE
       Since wait() blocks on a stopped child, a calling  process  wanting  to
       see  the  return  results  of  such  a  call  should use waitpid(3C) or
       waitid(2) instead of wait(). The wait() function is  implemented  as  a
       call to waitpid(-1, stat_loc, 0).

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), waitid(2), ptrace(3C),
       signal(3C), waitpid(3C), signal.h(3HEAD), wait.h(3HEAD), attributes(7)



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