Path: utzoo!attcan!uunet!munnari.oz.au!mimir!hugin!augean!sirius.ua.oz.au!nt!levels!ccdn From: CCDN@levels.sait.edu.au (david newall) Newsgroups: comp.unix.questions Subject: Re: SYS V SIGCLD Handling Message-ID: <2961@levels.sait.edu.au> Date: 21 Nov 89 11:24:58 GMT References: <957@sdrc.UUCP> Organization: Sth Australian Inst of Technology Lines: 30 In article <957@sdrc.UUCP>, scjones@sdrc.UUCP (Larry Jones) writes: > #include > > handler() > { > signal(SIGCLD, handler); > } > > main() > { > signal(SIGCLD, handler); > if (fork() == 0) exit(0); > } > > When I run this on my Sys Vr3.0 system, it goes into recursive death. A similar program which caught SIGINT, running under SVR1, gave me similar results. I don't understand why. It seems to contradict the manual: "A call to signal cancels a pending signal sig except for a pending SIGKILL signal." Could someone please explain this apparent contradiction? David Newall Phone: +61 8 343 3160 Unix Systems Programmer Fax: +61 8 349 6939 Academic Computing Service E-mail: ccdn@levels.sait.oz.au SA Institute of Technology Post: The Levels, South Australia, 5095