When a process waits for status from its children via either the
wait, waitpid, or wait3
functions, the status returned may be evaluated with the following
macros, defined in
sys/wait.h. These macros evaluate to integral expressions.
The stat argument to these macros is the integer value returned from
wait
or
waitpid.
WIFEXITED(stat)
Evaluates to a non-zero value if status was returned for a child
process that terminated normally.
WEXITSTATUS(stat)
If the value of
WIFEXITED(stat)
is non-zero, this macro evaluates to the exit code that the child
process passed to
_exit
or
exit,
or the value that the child process returned from
main.
WIFSIGNALED(stat)
Evaluates to a non-zero value if status was returned for a child process
that terminated due to the receipt of a signal.
WTERMSIG(stat)
If the value of
WIFSIGNALED(stat)
is non-zero, this macro evaluates to the number of the signal that caused the
termination of the child process.
WIFSTOPPED(stat)
Evaluates to a non-zero value if status was returned for a child process
that is currently stopped.
WSTOPSIG(stat)
If the value of
WIFSTOPPED(stat)
is non-zero, this macro evaluates to the number of the signal that caused the
child process to stop.
WIFCONTINUED(stat)
Evaluates to a non-zero value if status was returned for a child
process that has continued.
WCOREDUMP(stat)
If the value of WIFSIGNALED(stat) is non-zero,
this macro evaluates to a non-zero value if a core image of the terminated
child was created.