Re: On SIGCHLD signal semantics

Todd Larason (jtl@molehill.org)
Wed, 5 Jun 1996 18:38:18 -0500 (CDT)


On Tue, 4 Jun 1996, Theodore Y. Ts'o wrote:

> So the bottom line is what we're doing is allowed by POSIX, and
> compatible with System V. Given that it's compatible with System V, it
> may very well be required by SVID and/or Spec 1170. If someone who has
> access to either SVID or Spec 1170, do please comment on this issue....

Single Unix Spec's version of System Headers & Interfaces, sigaction()
description:

If a process sets the action for the SIGCHLD signal to SIG_IGN, the
behaviour is unspecified [UX[ except as specified below.

If the action for the SIGCHLD signal is set to SIG_IGN, child processes
of the calling processes will not be transformed into zombie processes
when they terminate. If the calling process subsequently waits for its
children, and the process has no unwaited for children that were
transformed into zombie processes, it will block until all of its
children terminate, and wait(), wait3(), waitid() and waitpid() will
fail and set errno to [ECHILD]. ]]

The part between the [UX[ and ]] is a 'Unix extension' to the base X/Open
spec.