(Illustration by Gaich Muramatsu)
>From a Linux man page on sigaction ... POSIX (B.3.3.1.3) disallows setting the action for SIGCHLD to SIG_IGN. The BSD and SYSV behaviours differ, causing BSD software that sets the action for SIGCHLD to SIG_IGN to fail on Linux. And from another Linux man page (for wait()) I found. NOTES The Single Unix Specification describes a flag SA_NOCLD- WAIT (not present under Linux) such that if either this flag is set, or the action for SIGCHLD is set to SIG_IGN (which, by the way, is not allowed by POSIX), then chil- dren that exit do not become zombies and a call to wait() or waitpid() will block until all children have exited, and then fail with errno set to ECHILD. What fun! And I'm sure SIG_IGN for BSD doesn't stop the need for waiting on the child. --Phil -- Phil Nelson NetBSD: http://www.netbsd.org e-mail: phil@cs.wwu.edu Coda: http://www.coda.cs.cmu.edu http://cs.wwu.edu/faculty/nelsonReceived on 2003-06-05 11:52:37