Subject: Re: Curious SYNOPSIS in signal(3)
To: None <jdolecek@netbsd.org, rhialto@polderland.nl>
From: None <eeh@netbsd.org>
List: current-users
Date: 06/26/2002 16:11:37
| On Wed 26 Jun 2002 at 11:27:44 +0200, Jaromir Dolecek wrote:
| > Indeed, I find the form using typedef easier to parse, too. It's much
| > more obvious that the returned value is pointer to a function.
|
| and that the returned function is of the same type as the function that
| you pass in. Which is not very clear from the expanded form, either.
|
| > I'm going to update the manpage to use typedef.
|
| Good idea.

POSIX defines it as:

	 void (*signal(int sig, void (*func)(int)))(int);

While sig_t is easier to read, it's not standard, and even in the
header file it's not defined for POSIX compatibility:

#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
typedef void (*sig_t) __P((int));       /* type of signal function */
#endif 

I don't know if using that in the manpage is such a good idea.  It
promotes the use of non-portable code.

Eduardo