waitid(2)


waitid -- wait for child process to change state

Synopsis

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

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

Description

waitid suspends the calling process until one of its children changes state. It records the current state of a child in the structure pointed to by infop. If a child process changed state prior to the call to waitid, waitid returns immediately.

The idtype and id arguments specify which children waitid is to wait for.

The options argument is used to specify which state changes waitid is to wait for. It is formed by an OR of any of the following flags:


WEXITED
Wait for process(es) to exit.

WTRAPPED
Wait for traced process(es) to become trapped or reach a breakpoint [see ptrace(2)].

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

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

WNOHANG
Return immediately.

WNOWAIT
Keep the process in a waitable state. This will not affect the state of the process on subsequent waits.

infop must point to a siginfo_t structure, as defined in siginfo(5). siginfo_t is filled in by the system with the status of the process being waited for.

Return values

If waitid returns due to a change of state of one of its children, it returns 0. Otherwise, waitid returns -1 and sets errno to identify the error.

Errors

In the following conditions, waitid fails and sets errno to:

EFAULT
infop points to an invalid address.

EINTR
waitid was interrupted due to the receipt of a signal by the calling process.

EINVAL
0 or another invalid value was specified for options.

EINVAL
idtype and id specify an invalid set of processes.

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

References

exec(2), exit(2), fork(2), intro(2), pause(2), ptrace(2), sigaction(2), siginfo(5), signal(2), wait(2), waitpid(2)

Notices

Considerations for threads programming

While one thread is blocked, siblings might still be executing.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004