Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!shadooby!ginosko!gem.mps.ohio-state.edu!apple!motcsd!hpda!hpcupt1!hpisod2!decot From: decot@hpisod2.HP.COM (Dave Decot) Newsgroups: comp.lang.c Subject: Re: 0 and pointers.( Re: Abandon NULL for (0)) Message-ID: <2550107@hpisod2.HP.COM> Date: 12 Oct 89 23:29:56 GMT References: <8634@goofy.megatest.UUCP> Organization: Hewlett Packard, Cupertino Lines: 16 > They were probably following BSD's lead. BSD UNIX at one point started > passing additional information to signal handlers for certain classes of > signals (e.g. FPE exceptions). This is horribly nonportable, as is > treating fixed-argument functions the same as variadic functions. > > Anyway, it's wrong. The standard signal() function's signal handlers > are NOT variadic; they receive precisely one int argument. This is why many operating systems on which C is used have had to add some other interface (or if they can do it compatibly, add arguments to the handling function) to workaround this design defect. I don't know how "horribly" non-portable this usage is, since many systems seem to be able to acheive it, but if the standard defined something useful, there wouldn't be as much need to invent non-portable ways to get the job done. Dave Decot