System Calls                                            waitid(2)


     waitid - wait for child process to change state


     #include <wait.h>

     int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);


     The waitid() function suspends the calling process until one
     of its child processes changes state. It records the current
     state of a child in the structure pointed to by  infop.   It
     returns  immediately  if a child process changed state prior
     to the call.

     The idtype and id arguments specify which children  waitid()
     is to wait for, as follows:

         o    If idtype is P_PID, waitid() waits  for  the  child
              with a process ID equal to (pid_t)id.

         o    If idtype is P_PGID, waitid() waits for  any  child
              with a process group ID equal to (pid_t)id.

         o    If idtype is P_ALL, waitid() waits  for  any  child
              and id is ignored.

     The options argument is used to specify which state  changes
     waitid()  is  to wait for. It is formed by bitwise OR opera-
     tion of any of the following flags:

     WCONTINUED    Return the  status  for  any  child  that  was
                   stopped and has been continued.

     WEXITED       Wait for process(es) to exit.

     WNOHANG       Return immediately.

     WNOWAIT       Keep the process in a waitable state.

     WSTOPPED      Wait for and return the process status of  any
                   child that has  stopped upon receipt of a sig-

SunOS 5.11           Last change: 9 Jun 2004                    1

System Calls                                            waitid(2)

     WTRAPPED      Wait for traced process(es) to become  trapped
                   or reach a breakpoint (see ptrace(3C)).

     The infop argument must point to a siginfo_t  structure,  as
     defined  in siginfo.h(3HEAD).  If waitid() returns because a
     child process was found that satisfies the conditions  indi-
     cated  by  the arguments idtype and options, then the struc-
     ture pointed to by infop will be filled by the  system  with
     the  status  of the process. The si_signo member will always
     be equal to SIGCHLD.

     One instance of a SIGCHLD signal is queued  for  each  child
     process  whose  status  has  changed.  If  waitid()  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 pend-


     If waitid() returns due to a change of state of one  of  its
     children  and  WNOHANG  was not used, 0 is returned.  Other-
     wise, -1 is returned and errno is set to indicate the error.
     If  WNOHANG  was  used,  0  can  be  returned (indicating no
     error); however, no  children  may  have  changed  state  if
     info->si_pid is 0.


     The waitid() function will fail if:

     ECHILD    The set of processes specified by  idtype  and  id
               does not contain any unwaited processes.

     EFAULT    The infop argument points to an illegal address.

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

     EINVAL    An invalid value was  specified  for  options,  or
               idtype and id specify an invalid set of processes.


     With options  equal  to  WEXITED  |  WTRAPPED,  waitid()  is
     equivalent  to  waitpid(3C).  With idtype equal to P_ALL and
     options equal to WEXITED | WTRAPPED, waitid() is  equivalent

SunOS 5.11           Last change: 9 Jun 2004                    2

System Calls                                            waitid(2)

     to wait(3C).


     See attributes(5) for descriptions of the  following  attri-

    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | Interface Stability         | Standard                    |
    | MT-Level                    | Async-Signal-Safe           |


     Intro(2), exec(2), exit(2), fork(2), pause(2), sigaction(2),
     ptrace(3C),    signal(3C),    siginfo.h(3HEAD),    wait(3C),
     waitpid(3C), attributes(5), standards(5)

SunOS 5.11           Last change: 9 Jun 2004                    3

Man(1) output converted with man2html

FhG Schily's Home VED powered