wait(2) wait(2)
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
wait suspends the calling process until one of its immediate
children terminates or until a child that is being traced
stops because it has received a signal. The wait system call
will return prematurely if a signal is received. If all child
processes stopped or terminated prior to the call on wait,
return is 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 had specified a non-zero value for
stat_loc, the status of the child process will be stored in
the location pointed to by stat_loc. It may be evaluated with
the macros described on wstat(5). In the following, status is
the object pointed to by stat_loc:
If the child process stopped, the high order 8 bits of
status will contain the number of the signal that caused
the process to stop and the low order 8 bits will be set
equal to WSTOPFLG.
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 8 bits of the argument
that the child process passed to exit. [see exit(2)].
If the child process terminated due to a signal, the
high order 8 bits of status will be 0 and the low order
8 bits will contain the number of the signal that caused
the termination. In addition, if WCOREFLG is set, a
``core image'' will have been produced. [see signal(2)].
If wait returns because the status of a child process is
available, then that status may be evaluated with the macros
defined by wstat.
Copyright 1994 Novell, Inc. Page 1
wait(2) wait(2)
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. This means the initialization process
inherits the child processes. [see intro(2)].
Files
Message catalog: uxcore.abi
Return Values
If wait returns due to a stopped or terminated child process,
the process ID of the child is returned to the calling
process. Otherwise, wait returns -1 and sets errno to
identify the error.
Errors
In the following conditions, wait fails and sets errno to:
ECHILD The calling process has no existing unwaited-
for child processes.
EINTR The function was interrupted by a signal.
REFERENCES
exec(2), exit(2), fork(2), intro(2), pause(2), ptrace(2),
signal(2), signal(5), wstat(5)
NOTICES
See NOTICES in signal(5).
If SIGCLD is held, then wait does not recognize death of
children.
Considerations for Threads Programming
While one thread is blocked, siblings might still be
executing.
Copyright 1994 Novell, Inc. Page 2