Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!cs.utexas.edu!romp!auschs!awdprime!testsys.austin.ibm.com!mbrown From: mbrown@testsys.austin.ibm.com (Mark Brown) Newsgroups: comp.std.c Subject: Re: proper semi-portable use of signal()? Summary: One Argument Message-ID: <6234@awdprime.UUCP> Date: 28 Mar 91 22:40:02 GMT References: <3223@charon.cwi.nl> <15605@smoke.brl.mil> <11568@dog.ee.lbl.gov> Sender: news@awdprime.UUCP Organization: IBM AWD, Austin Lines: 31 torek@elf.ee.lbl.gov (Chris Torek) writes: |gwyn@smoke.brl.mil (Doug Gwyn) writes: |>The signal handler function does NOT have a variable argument list, |>but always receives precisely one argument of type int. The ,... is |>a bogus attempt to accommodate 4.2BSD-style signal handers. If some |>recent modification has been made to POSIX.1 that requires this, it |>is WRONG and in general incompatible with the C standard. | |The word on the streets is that current POSIX drafts *do* require more |than one argument. POSIX 1003.1-1990 (the ISO version), Section 3.3.1.3 Signal Actions, Sub 3b - "The signal-catching function shall be entered as a C language function call as follows: void func ( int SIGNO ); where func is the specified signal-catching function and SIGNO is the signal number of the signal being delivered." [This is the OFFICIAL POSIX DOCUMENT for .1, not a draft.] POSIX 1003.2 Draft 11 (the current draft) says nothing. POSIX 1003.2a Draft 6 says nothing. I can't speak for the .4 folks, or the multiprocessing people. I can say that every effort is made to keep from contradicting the C standard.... -- Mark Brown IBM PSP Austin, TX. (512) 823-3741 VNET: MBROWN@AUSVMQ MAIL: mbrown@testsys.austin.ibm.com OR uunet!testsys.austin.ibm.com!mbrown The nice thing about standards is that there are so many to choose from! DISCLAIMER: Any personal opinions stated here are just that.