waitpid(2) waitpid(2)
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
waitpid suspends the calling process until one of its children
changes state; if a child process changed state prior to the
call to waitpid, return is immediate. pid specifies a set of
child processes for which status is requested.
If pid is equal to (pid_t)-1, status is requested for
any child process.
If pid is greater than (pid_t)0, it specifies the
process ID of the child process for which status is
requested.
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.
If pid is less than (pid_t)-1, status is requested for
any child process whose process group ID is equal to the
absolute value of pid.
If waitpid returns because the status of a child process is
available, then that status may be evaluated with the macros
defined by wstat(5). If the calling process had specified a
non-zero value of stat_loc, the status of the child process
will be stored in the location 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 file sys/wait.h:
WCONTINUED the status of any continued child process
specified by pid, whose status has not been
reported since it continued (from a job control
stop), shall also be reported to the calling
process.
Copyright 1994 Novell, Inc. Page 1
waitpid(2) waitpid(2)
WNOHANG waitpid 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, shall
also be reported to the calling process.
waitpid with options equal to WUNTRACED and pid^ equal to
(pid_t)-1 is identical to a call to wait(2).
Return Values
If waitpid returns because the status of a child process is
available, it returns the process ID of the child process for
which status is reported. If waitpid was invoked with WNOHANG
set in options, it has at least one child process specified by
pid for which status is not available, and status is not
available for any process specified by pid, waitpid returns 0.
Otherwise, waitpid returns -1 and sets errno to identify the
error.
Errors
In the following conditions, waitpid fails and sets errno to:
EINTR waitpid was interrupted due to the receipt of a
signal sent by the calling process.
EINVAL An invalid value was specified for options.
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.
REFERENCES
exec(2), exit(2), fork(2), intro(2), pause(2), ptrace(2),
signal(2), sigaction(2), siginfo(5), wstat(5)
Copyright 1994 Novell, Inc. Page 2
waitpid(2) waitpid(2)
NOTICES
Considerations for Threads Programming
While one thread is blocked, siblings might still be
executing.
Copyright 1994 Novell, Inc. Page 3