Hello. I'm not sure I've completely understood your question, but I think you're confusing the issue of whether a child posts a SIGCHLD signal when it exits versus whether the current process that's calling wait(2) receives a SIGCHLD when a child exits. The default behavior, as I understand it, is that if a process has children, by default, it will not get signaled if those children terminate. However, if that process then calls wait(2), it will hang until a child terminates, regardless of whether it's configured to receive the SIGCHLD or not. In that instance, I think the man page is wrong, at least if code I have running is to be believed. So, I think there's no difference between the default ignoring of the SIGCHLD signal and explicitly ignoring it. -Brian
On Aug 14, 1:51pm, Edgar =?iso-8859-1?B?RnXf?= wrote: } Subject: wait(2) and SIGCHLD } I'm confused regarding the behaviour of wait(2) wrt. SIGCHLD handling. } } The wait(2) manpage says: } } wait() will fail and return immediately if: } [ECHILD] The calling process has no existing unwaited-for child } processes; or no status from the terminated child } process is available because the calling process has } asked the system to discard such status by ignoring } the signal SIGCHLD or setting the flag SA_NOCLDWAIT } for that signal. } } However, ignore is the default handler for SIGCHLD. } } So does the } because the calling process has asked the system } to discard such status by ignoring the signal SIGCHLD } mean that explicitly ignoring SIGCHLD is different from ignoring it per default? >-- End of excerpt from Edgar =?iso-8859-1?B?RnXf?=